

    *{box-sizing:border-box}

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  min-height:100vh;
  background:#0f1a35;
  position:relative;
  overflow-x:hidden;
}

/* ambient light layer */
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:
    radial-gradient(900px 600px at 15% 25%, rgba(88,214,255,1), transparent 60%),
    radial-gradient(800px 500px at 85% 75%, rgba(124,92,255,1), transparent 60%),
    radial-gradient(700px 500px at 50% 100%, rgba(0,255,200,.18), transparent 60%);
  filter:blur(100px);
  opacity:.9;
  z-index:-1;
  pointer-events:none;
}
    a{color:inherit; text-decoration:none}
    .wrap{max-width:var(--max); margin:0 auto; padding:0 22px}
    .nav{
      position:sticky; top:0; z-index:50;
      backdrop-filter: blur(12px);
      background: linear-gradient(180deg, rgba(6,10,18,.78), rgba(6,10,18,.35));
      border-bottom:1px solid var(--line);
    }
    .navbar{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
    .brand{
      display:flex; gap:10px; align-items:center;
      font-weight:700; letter-spacing:.2px;
    }
    .logo{
      width:34px; height:34px; border-radius:12px;
      background: radial-gradient(10px 10px at 28% 35%, rgba(255,255,255,.9), rgba(255,255,255,0)),
                  linear-gradient(135deg, var(--brand), var(--brand2));
      box-shadow: 0 10px 34px rgba(88,214,255,.22);
      position:relative;
      overflow:hidden;
    }
    .logo::after{
      content:"";
      position:absolute; inset:-30%;
      background: linear-gradient(120deg, transparent 35%, rgba(255,255,255,.35), transparent 62%);
      transform: translateX(-40%) rotate(10deg);
      animation: shine 5.8s ease-in-out infinite;
    }
    @keyframes shine{
      0%,30%{transform: translateX(-60%) rotate(10deg); opacity:.1}
      45%{opacity:.55}
      70%,100%{transform: translateX(70%) rotate(10deg); opacity:.1}
    }

    .navlinks{display:flex; gap:16px; align-items:center}
    .pill{
      padding:10px 12px;
      border-radius:999px;
      border:1px solid var(--line);
      background: rgba(255,255,255,.04);
      color:var(--muted);
      transition: transform .18s ease, background .18s ease, border-color .18s ease;
    }
    .pill:hover{transform: translateY(-1px); background: rgba(255,255,255,.06); border-color: rgba(234,242,255,.22)}
    .cta{
      padding:10px 14px;
      border-radius:999px;
      background: linear-gradient(135deg, var(--brand), var(--brand2));
      border:0;
      color:#07101d;
      font-weight:700;
      box-shadow: 0 14px 36px rgba(124,92,255,.22);
      transition: transform .18s ease, filter .18s ease;
      cursor:pointer;
    }
    .cta:hover{transform: translateY(-1px); filter:saturate(1.05)}
    .cta:active{transform: translateY(0px) scale(.98)}

    .hero{
      padding:58px 0 22px;
      position:relative;
    }
    .heroGrid{
      display:grid;
      grid-template-columns: 1.1fr .9fr;
      gap:22px;
      align-items:stretch;
    }
    @media (max-width: 900px){
      .heroGrid{grid-template-columns:1fr; gap:14px}
      .navlinks .pill{display:none}
    }

    .card{
      border:1px solid var(--line);
      background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
      border-radius: var(--r);
      box-shadow: var(--shadow);
    }
    .heroMain{padding:22px 22px 18px; overflow:hidden; position:relative}
    .heroMain::before{
      content:"";
      position:absolute; inset:-40%;
      background: radial-gradient(closest-side, rgba(88,214,255,.18), transparent 70%),
                  radial-gradient(closest-side, rgba(124,92,255,.18), transparent 70%);
      transform: translate3d(var(--mx,0px), var(--my,0px), 0);
      transition: transform .25s ease;
      pointer-events:none;
    }
    .kicker{
      display:inline-flex;
      gap:8px;
      align-items:center;
      font-size:12px;
      letter-spacing:.45px;
      text-transform:uppercase;
      color: rgba(234,242,255,.76);
      border:1px solid rgba(234,242,255,.18);
      background: rgba(255,255,255,.04);
      border-radius:999px;
      padding:8px 10px;
      position:relative;
      z-index:2;
    }
    .dot{width:7px; height:7px; border-radius:99px; background: var(--ok); box-shadow: 0 0 0 6px rgba(70,230,166,.12)}
    h1{
      margin:14px 0 10px;
      font-size: 46px;
      line-height: 1.05;
      letter-spacing: -1.2px;
      position:relative;
      z-index:2;
    }
    @media (max-width: 520px){ h1{font-size:36px} }

    .sub{
      color: var(--muted);
      font-size: 15.5px;
      line-height:1.55;
      max-width: 56ch;
      position:relative;
      z-index:2;
    }

    .searchRow{
      margin-top:16px;
      display:flex;
      gap:10px;
      align-items:stretch;
      position:relative;
      z-index:2;
    }
    .input{
      flex:1;
      border-radius: 14px;
      border:1px solid rgba(234,242,255,.16);
      background: rgba(7,12,20,.6);
      color: var(--text);
      padding: 12px 12px;
      outline:none;
      transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
    }
    .input:focus{
      border-color: rgba(88,214,255,.55);
      box-shadow: 0 0 0 6px rgba(88,214,255,.10);
    }
    .ghost{
      border-radius:14px;
      border:1px solid rgba(234,242,255,.16);
      background: rgba(255,255,255,.04);
      padding: 12px 12px;
      color: rgba(234,242,255,.85);
      font-weight:650;
      cursor:pointer;
      transition: transform .18s ease, background .18s ease, border-color .18s ease;
    }
    .ghost:hover{transform: translateY(-1px); background: rgba(255,255,255,.06); border-color: rgba(234,242,255,.24)}
    .ghost:active{transform: translateY(0px) scale(.98)}

    .heroSide{
      padding:16px;
      display:flex;
      flex-direction:column;
      gap:10px;
      position:relative;
      overflow:hidden;
    }
    .mini{
      border:1px solid rgba(234,242,255,.14);
      border-radius: 14px;
      padding: 12px;
      background: rgba(255,255,255,.04);
      transition: transform .18s ease, border-color .18s ease;
    }
    .mini:hover{transform: translateY(-2px); border-color: rgba(234,242,255,.22)}
    .miniTop{display:flex; align-items:center; justify-content:space-between; gap:12px}
    .tag{
      font-size:12px;
      color: rgba(234,242,255,.75);
      padding:6px 10px;
      border-radius: 999px;
      background: rgba(255,255,255,.05);
      border:1px solid rgba(234,242,255,.14);
    }
    .miniTitle{font-weight:750; letter-spacing:.1px}
    .miniDesc{margin-top:6px; color:var(--muted); font-size:13px; line-height:1.45}
    .statRow{display:flex; gap:10px; margin-top:10px}
    .stat{
      flex:1;
      border:1px solid rgba(234,242,255,.12);
      background: rgba(255,255,255,.03);
      border-radius: 14px;
      padding: 10px;
    }
    .stat b{display:block; font-size:16px}
    .stat span{display:block; color:var(--muted); font-size:12px; margin-top:2px}

    section{padding: 22px 0}
    .sectionHead{
      display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
      margin-bottom:12px;
    }
    .sectionHead h2{
      margin:0;
      font-size: 22px;
      letter-spacing:-.4px;
    }
    .sectionHead p{margin:0; color:var(--muted); max-width:70ch; line-height:1.45}
    .grid3{
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap:14px;
    }
    @media (max-width: 900px){ .grid3{grid-template-columns:1fr} }

    .place{
      overflow:hidden;
      position:relative;
      padding:0;
    }
    .placeTop{
      height: 168px;
      background:
        radial-gradient(280px 140px at 30% 30%, rgba(88,214,255,.35), transparent 60%),
        radial-gradient(260px 150px at 70% 70%, rgba(124,92,255,.35), transparent 60%),
        linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.02));
      border-bottom: 1px solid rgba(234,242,255,.12);
      position:relative;
    }
    .placeTop::after{
      content:"";
      position:absolute; inset:0;
      background: linear-gradient(180deg, transparent, rgba(6,10,18,.55));
      pointer-events:none;
    }
    .placeTop img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      opacity:.92;
      transform: scale(1.02);
    }
    .placeBody{padding:12px 12px 14px}
    .placeTitle{font-weight:780; margin:0; letter-spacing:-.2px}
    .placeMeta{
      display:flex; flex-wrap:wrap;
      gap:8px;
      margin-top:8px;
      color: var(--muted);
      font-size: 12.5px;
    }
    .chip{
      border:1px solid rgba(234,242,255,.14);
      background: rgba(255,255,255,.04);
      padding:6px 10px;
      border-radius:999px;
    }
    .placeActions{
      display:flex; gap:10px; margin-top:12px;
    }
    .linkBtn{
      flex:1;
      padding:10px 10px;
      border-radius: 12px;
      border:1px solid rgba(234,242,255,.14);
      background: rgba(255,255,255,.04);
      color: rgba(234,242,255,.92);
      font-weight:700;
      cursor:pointer;
      transition: transform .18s ease, background .18s ease, border-color .18s ease;
    }
    .linkBtn:hover{transform: translateY(-1px); background: rgba(255,255,255,.06); border-color: rgba(234,242,255,.22)}
    .linkBtn:active{transform: translateY(0px) scale(.98)}
    .primaryBtn{
      flex:1;
      padding:10px 10px;
      border-radius: 12px;
      border:0;
      background: linear-gradient(135deg, rgba(88,214,255,.95), rgba(124,92,255,.95));
      color:#07101d;
      font-weight:800;
      cursor:pointer;
      transition: transform .18s ease, filter .18s ease;
    }
    .primaryBtn:hover{transform: translateY(-1px); filter:saturate(1.05)}
    .primaryBtn:active{transform: translateY(0px) scale(.98)}

    /* Carousel */
    .carousel{
      border-radius: var(--r);
      border:1px solid var(--line);
      background: rgba(255,255,255,.04);
      overflow:hidden;
      box-shadow: var(--shadow);
    }
    .carTop{
      display:flex; align-items:center; justify-content:space-between;
      padding:12px 12px 8px;
      border-bottom:1px solid rgba(234,242,255,.10);
    }
    .carTitle{font-weight:800; letter-spacing:-.2px}
    .carControls{display:flex; gap:8px}
    .iconBtn{
      width:38px; height:38px;
      border-radius:12px;
      border:1px solid rgba(234,242,255,.14);
      background: rgba(255,255,255,.04);
      color: rgba(234,242,255,.9);
      cursor:pointer;
      transition: transform .18s ease, background .18s ease, border-color .18s ease;
    }
    .iconBtn:hover{transform: translateY(-1px); background: rgba(255,255,255,.06); border-color: rgba(234,242,255,.22)}
    .iconBtn:active{transform: translateY(0px) scale(.98)}
    .viewport{
      position:relative;
      overflow:hidden;
      padding: 12px 12px 14px;
    }
    .track{
      display:flex;
      gap:12px;
      transform: translate3d(0,0,0);
      will-change: transform;
      transition: transform .55s cubic-bezier(.2,.9,.2,1);
      cursor:grab;
    }
    .track:active{cursor:grabbing}
    .slide{
      min-width: 320px;
      max-width: 320px;
    }
    @media (max-width: 420px){
      .slide{min-width: 86vw; max-width: 86vw}
    }
    .dots{
      display:flex; gap:8px; justify-content:center;
      padding: 0 0 14px;
    }
    .dotBtn{
      width:8px; height:8px; border-radius:999px;
      border:1px solid rgba(234,242,255,.24);
      background: rgba(255,255,255,.08);
      cursor:pointer;
      opacity:.7;
      transition: transform .18s ease, opacity .18s ease, background .18s ease;
    }
    .dotBtn.active{
      opacity:1;
      transform: scale(1.15);
      background: linear-gradient(135deg, var(--brand), var(--brand2));
      border-color: transparent;
    }

    /* Reveal animation */
    .reveal{
      opacity:0;
      transform: translateY(14px) scale(.99);
      filter: blur(6px);
      transition: opacity .7s ease, transform .7s cubic-bezier(.2,.9,.2,1), filter .7s ease;
    }
    .reveal.show{
      opacity:1;
      transform: translateY(0) scale(1);
      filter: blur(0);
    }

    /* Footer */
    footer{
      border-top:1px solid var(--line);
      padding: 20px 0 40px;
      color: var(--muted);
    }
    .footGrid{
      display:grid;
      grid-template-columns: 1.1fr .9fr;
      gap:16px;
      align-items:start;
    }
    @media (max-width: 900px){ .footGrid{grid-template-columns:1fr} }
    .note{font-size:13px; line-height:1.55}
    .newsletter{
      display:flex; gap:10px; align-items:stretch;
      margin-top:10px;
    }
    /* Saved count badge */
.count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 8px;
  margin-left:8px;
  border-radius:999px;
  border:1px solid rgba(234,242,255,.16);
  background: rgba(255,255,255,.06);
  color: rgba(234,242,255,.88);
  font-size:12px;
  font-weight:800;
}

/* Save button "saved" state */
.saveBtn.isSaved{
  border-color: rgba(70,230,166,.28);
  background: rgba(70,230,166,.08);
}

/* Toast */
.toast{
  position:fixed;
  left:50%;
  bottom:18px;
  transform: translateX(-50%) translateY(10px);
  opacity:0;
  pointer-events:none;
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(234,242,255,.14);
  background: rgba(6,10,18,.78);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
  color: rgba(234,242,255,.92);
  font-weight:650;
  transition: opacity .22s ease, transform .22s ease;
  z-index:120;
}
.toast.show{
  opacity:1;
  transform: translateX(-50%) translateY(0);
}

/* Modal */
.modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:110;
}
.modal.show{ display:block; }

.modalBackdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(6px);
}

.modalPanel{
  position:relative;
  width:min(920px, calc(100% - 28px));
  margin: 70px auto 0;
  border-radius: var(--r);
  border:1px solid rgba(234,242,255,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.05));
  box-shadow: var(--shadow);
  overflow:hidden;
}

.modalTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px;
  border-bottom:1px solid rgba(234,242,255,.10);
}
.modalTitle{ font-weight:900; letter-spacing:-.2px; font-size:16px; }
.modalSub{ color: var(--muted); font-size:13px; margin-top:3px; }

.modalBody{
  padding: 14px;
  max-height: min(62vh, 560px);
  overflow:auto;
}

.savedGrid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (max-width: 820px){
  .savedGrid{ grid-template-columns: 1fr; }
}

.savedItem{
  display:flex;
  gap:12px;
  border:1px solid rgba(234,242,255,.14);
  background: rgba(255,255,255,.04);
  border-radius: 16px;
  overflow:hidden;
}
.savedThumb{
  width: 150px;
  min-width:150px;
  height: 110px;
  background: rgba(255,255,255,.03);
  position:relative;
}
.savedThumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.savedInfo{
  padding: 10px 10px 10px 0;
  flex:1;
}
.savedName{
  margin: 8px 0 6px;
  font-weight:850;
  letter-spacing:-.2px;
}
.savedMeta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color: var(--muted);
  font-size:12.5px;
}
.savedActions{
  display:flex;
  gap:10px;
  margin-top:10px;
  padding-right:10px;
}
.savedActions .linkBtn,
.savedActions .primaryBtn{
  padding:9px 10px;
  border-radius: 12px;
}

.savedEmpty{
  display:none;
  padding: 18px;
  border:1px dashed rgba(234,242,255,.18);
  border-radius: 16px;
  background: rgba(255,255,255,.03);
  text-align:center;
}
.savedEmptyTitle{ font-weight:900; }
.savedEmptySub{ color: var(--muted); margin-top:6px; }

.modalBottom{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding: 14px;
  border-top:1px solid rgba(234,242,255,.10);
}
/* ===== Ambient animated background ===== */

.ambient-bg {
  position: fixed;
  inset: 0;
  overflow: hidden;
  z-index: -1;
  pointer-events: none;
}

.ambient-bg span {
  position: absolute;
  display: block;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(120,160,255,.35), rgba(0,200,180,.15) 60%, transparent 70%);
  filter: blur(40px);
  animation: floatUp linear infinite;
  opacity: .35;
}

/* Different sizes + speeds */
.ambient-bg span:nth-child(1) { width: 220px; height: 220px; left: 10%;  animation-duration: 35s; animation-delay: 0s; }
.ambient-bg span:nth-child(2) { width: 300px; height: 300px; left: 25%;  animation-duration: 50s; animation-delay: 5s; }
.ambient-bg span:nth-child(3) { width: 180px; height: 180px; left: 45%;  animation-duration: 40s; animation-delay: 2s; }
.ambient-bg span:nth-child(4) { width: 260px; height: 260px; left: 60%;  animation-duration: 55s; animation-delay: 8s; }
.ambient-bg span:nth-child(5) { width: 200px; height: 200px; left: 75%;  animation-duration: 38s; animation-delay: 4s; }
.ambient-bg span:nth-child(6) { width: 320px; height: 320px; left: 85%;  animation-duration: 60s; animation-delay: 10s; }
.ambient-bg span:nth-child(7) { width: 240px; height: 240px; left: 35%;  animation-duration: 45s; animation-delay: 6s; }
.ambient-bg span:nth-child(8) { width: 150px; height: 150px; left: 55%;  animation-duration: 30s; animation-delay: 3s; }

@keyframes floatUp {
  0% {
    transform: translateY(110vh) scale(1);
  }
  100% {
    transform: translateY(-20vh) scale(1.2);
  }
}
.chip{
  padding:8px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--muted);
  cursor:pointer;
  transition:.25s ease;
  font-weight:600;
}

.chip:hover{
  background:rgba(255,255,255,.08);
  color:var(--text);
}

/* selected state */
.chip.active{
  background:linear-gradient(135deg, var(--brand), var(--brand2));
  color:#0b1220;
  border-color:transparent;
  box-shadow:0 8px 25px rgba(88,214,255,.35);
}
button.chip[data-filter].active{
  background:linear-gradient(135deg, var(--brand), var(--brand2));
  color:#0b1220;
  border-color:transparent;
  box-shadow:0 8px 25px rgba(88,214,255,.35);
}
/* Carousel: make touch dragging reliable */
.carousel .viewport{
  touch-action: pan-y; /* allow normal page vertical scroll */
}

/* The draggable element */
.carousel .track{
  touch-action: pan-y; /* key fix: allow vertical; JS handles horizontal */
  user-select: none;
  -webkit-user-select: none;
  cursor: grab;
  will-change: transform;
}

.carousel .track.dragging{
  cursor: grabbing;
}

/* Images shouldn't interfere */
.carousel .placeTop img{
  pointer-events: none;
  -webkit-user-drag: none;
  user-drag: none;
}

/* Optional */
.carousel button, .carousel a{
  -webkit-tap-highlight-color: transparent;
}