:root{
      --bg:rgba(255, 255, 255, 0.356);
      --card-bg: rgba(255, 255, 255, 0.137);
      --accent:#020202;
      --accent-2:#020202;
      --muted: #6c8b93;
      --glass: rgba(255,255,255,0.6);
      --container: 1100px;
    }

    html,body{
      height:100%;
    }

    body{
      margin:0;
      font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
      background: var(--bg);
      color: #08303a;
      -webkit-font-smoothing:antialiased;
      -moz-osx-font-smoothing:grayscale;
      overflow-y:scroll;
    }

    /* ---------- Page layout ---------- */
    .page{
      min-height:100vh;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:3.5rem;
      padding:3rem 1rem 6rem;
      position:relative;
    }

    .container{
      width:100%;
      max-width:var(--container);
      margin:0 auto;
      padding:0 1rem;
    }

    /* ---------- Floating bubbly background ---------- */
    .bubbles {
      position:fixed;
      inset:0;
      pointer-events:none;
      z-index:0;
      overflow:hidden;
    }
    .bubble{
      position:absolute;
      width:48px;
      height:48px;
      background: rgba(0, 0, 0, 0.774);
      border-radius:50%;
      box-shadow: 0 6px 20px rgba(0,0,0,0.06);
      animation: floatUp linear infinite;
      opacity:0.9;
      filter: blur(0.2px);
    }
    @keyframes floatUp {
      from { transform: translateY(110vh) scale(0.8); opacity:0.7; }
      to   { transform: translateY(-30vh) scale(1); opacity:0.95; }
    }

    /* ---------- Nav (small) ---------- */
    nav.topnav{
      width:100%;
      max-width:var(--container);
      margin:0 auto;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:1rem;
      z-index:5;
    }
    .brand{
      display:flex;
      align-items:center;
      gap:.8rem;
    }
    .brand img{
       width:80px; height:auto; display:block;
        filter: drop-shadow(0 4px 8px rgba(0,0,0,0.12));
        border-radius: 20%;
     }
    .brand .title{
      font-weight:700;
      font-size:2rem;
      color: #020202;
    }
    .nav-cta{
      margin-left:auto;
    }
    .btn{
      background:linear-gradient(180deg,var(--accent),var(--accent-2));
      color:white;
      padding:.8rem 1.2rem;
      border-radius:10px;
      border:0;
      cursor:pointer;
      box-shadow:0 6px 14px rgba(15,100,120,0.12);
      font-weight:600;
    }

    /* ---------- Hero ---------- */
    .hero{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:1.6rem;
      text-align:center;
      padding-top:1rem;
      z-index:2;
    }
    .hero .logo{
      max-width:420px;
      width:80%;
      filter: drop-shadow(0 12px 20px rgba(0,0,0,0.08));
    }
    .hero h1{
      font-size:2.1rem;
      margin:0;
      color:#07515b;
      letter-spacing:.5px;
    }
    .hero p{
      margin:0;
      color:var(--muted);
      max-width:760px;
    }

    /* ---------- Finn Maker card ---------- */
    .maker-wrap{
      margin-top:1rem;
      display:flex;
      justify-content:center;
      z-index:3;
    }
    .maker {
      width:100%;
      max-width:760px;
      background:var(--card-bg);
      border-radius:14px;
      padding:2rem;
      box-shadow: 0 8px 30px rgba(10,30,35,0.06);
      display:flex;
      gap:1.8rem;
      align-items:flex-start;
      flex-wrap:wrap;
    }
    .maker-left{
      flex:1 1 280px;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:1rem;
    }
    /* the FINN preview card */
    .finn-card {
      width:320px;
      height:320px;
      border-radius:12px;
      background: linear-gradient(180deg,#9ad6e8,#7fcfe0);
      display:flex;
      align-items:center;
      justify-content:center;
      box-shadow: inset 0 -6px 20px rgba(255,255,255,0.08), 0 8px 20px rgba(10,40,45,0.06);
      position:relative;
      overflow:hidden;
    }
    .finn-card img.finn-face{
      width:130%;
      height:auto;
      pointer-events:none;
      user-select:none;
    }
    .maker-right{
      flex:1 1 360px;
    }
    .maker h3{
      margin:0 0 .5rem 0;
      text-align:center;
      color:#07515b;
    }
    .swatches{
      display:flex;
      flex-wrap:wrap;
      gap:.6rem;
      justify-content:center;
      margin-top:.6rem;
    }
    .swatch{
      width:40px;
      height:40px;
      border-radius:8px;
      box-shadow: 0 4px 10px rgba(0,0,0,0.06);
      cursor:pointer;
      border:3px solid rgba(255,255,255,0.4);
    }
    .swatch:focus{ outline:2px solid rgba(3,70,90,0.12); }
    .download-row{
      display:flex;
      gap:.8rem;
      align-items:center;
      justify-content:center;
      margin-top:1rem;
    }
    .btn-ghost{
      background:transparent;
      border:1px solid rgba(3,70,90,0.06);
      padding:.7rem 1rem;
      border-radius:10px;
      cursor:pointer;
    }

    /* ---------- Meme Gallery ---------- */
    .gallery{
      width:100%;
      max-width:var(--container);
      margin:0 auto;
      padding:0 1rem;
      z-index:2;
    }
    .gallery h2{
      text-align:center;
      color:#0b5560;
      margin-bottom:1rem;
    }
    .grid{
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap:1rem;
    }
    .card{
      background:var(--card-bg);
      border-radius:12px;
      padding:.6rem;
      overflow:hidden;
      transition: transform .18s ease, box-shadow .18s ease;
    }
    .card img{
      width:100%;
      height:240px;
      object-fit:cover;
      border-radius:8px;
      display:block;
    }
    .card:hover{
      transform:translateY(-6px);
      box-shadow:0 14px 30px rgba(7,80,90,0.08);
    }

    .float-logo {
  display: block;
  margin: 0 auto; /* centers it */
  animation: float 3s ease-in-out infinite;
}

@keyframes float {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-50px); /* move up */
  }
  100% {
    transform: translateY(0px); /* back to start */
  }
}
    /* ---------- Lightbox ---------- */
    .lightbox{
      position:fixed;
      inset:0;
      background:rgba(5,20,25,0.65);
      display:flex;
      align-items:center;
      justify-content:center;
      z-index:9999;
      padding:2rem;
      visibility:hidden;
      opacity:0;
      transition:opacity .18s ease, visibility .18s;
    }
    .lightbox.show{
      visibility:visible;
      opacity:1;
    }
    .lightbox img{
      max-width:95%;
      max-height:90%;
      border-radius:8px;
      box-shadow:0 20px 60px rgba(0,0,0,0.5);
    }
    .lightbox .close{
      position:absolute;
      top:22px;
      right:22px;
      background:white;
      color:#07515b;
      border-radius:8px;
      border:0;
      padding:.6rem;
      cursor:pointer;
      font-weight:700;
    }

    /* ---------- Responsive ---------- */
    @media (max-width:1000px){
      .grid{ grid-template-columns: repeat(2,1fr); }
      .hero h1{ font-size:1.8rem; }
      .finn-card{ width:280px; height:280px; }
    }
    @media (max-width:680px){
      .grid{ grid-template-columns: 1fr; }
      .maker { padding:1rem; gap:1rem; }
      .brand img{ width:60px; }
      nav.topnav{ padding:0 1rem; align-items:center; }
    }



    .copy-btn {
  position: fixed;
  top: 20px;
  right: 20px;
  padding: 10px 18px;
  background: #000000e0;
  color: white;
  font-weight: bold;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  z-index: 1000;

  /* floating animation */
  animation: floa 3s ease-in-out infinite;
  transition: background 0.3s ease;
}

.copy-btn:hover {
  background: rgba(0, 0, 0, 0.548);
}

@keyframes floa {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
