:root{
  --serif: "Playfair Display", serif;
  --sans: "Inter", system-ui, sans-serif;
  --text:#111827;
  --muted:#6b7280;
}

*{
  box-sizing:border-box;
}

#vanta-bg {
position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -100; 
  pointer-events: none;
}

body{
  margin:0;
  font-family:var(--sans);
  background: #ffd0ed;
} 


/* rainbow glow */
body::before{
  content:"";

  position:fixed;

  width:1000px;
  height:600px;

  top:px;
  right:-250px;

  border-radius:80%;

  background:
  linear-gradient(
    135deg,
    #ff5c8a,
    #ffb84d,
    #7dc95e,
    #4d96ff,
    #8b5cf6
  );

  opacity: 0.25;

  filter:blur(120px);

  z-index:-1000;
}

body::after{
  display:none;
  content:"";

  position:fixed;

  width:700px;
  height:700px;

  left:-300px;
  bottom:-300px;

  border-radius:50%;

  border:2px solid rgba(139,92,246,.08);

  z-index:-10;
}

.wrapper{
  max-width:1300px;

  margin:auto;

  padding:3rem;

}

#brandLogo{
  width: auto;
  height: 60px;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.08));
  object-fit: contain;
}

.bg-animated{
  display:none;
  position:fixed;
  inset:0;
  z-index:-2;
  background: linear-gradient(120deg, rgba(255,245,250,0.6), rgba(240,255,255,0.6));
  pointer-events:none;
  overflow:hidden;
}
.bg-animated::before{
  display: none;
  content:"";
  position:absolute;
  width:140%;
  height:140%;
  left:-20%;
  top:-20%;
  background: radial-gradient(circle at 10% 20%, rgba(255,120,160,.12), transparent 10%),
              radial-gradient(circle at 80% 30%, rgba(120,180,255,.12), transparent 12%),
              radial-gradient(circle at 50% 80%, rgba(200,150,255,.10), transparent 14%);
  filter:blur(80px);
  animation: bgMove 14s linear infinite;
}

@keyframes bgMove{
  0%{ transform: translate3d(0,0,0) rotate(0deg) scale(1); }
  50%{ transform: translate3d(-6%,3%,0) rotate(3deg) scale(1.03); }
  100%{ transform: translate3d(0,0,0) rotate(0deg) scale(1); }
}

.hero-section{
  display: grid;
  grid-template-columns: 0.8fr 1.6fr;
  align-items: start;
  padding: 0 3vw;
  gap: 3rem;
  margin-top: 2rem;
}

.tag{
  display:inline-block;

  padding:.8rem 1.2rem;

  border-radius:999px;

  background:white;

  box-shadow:
  0 8px 20px rgba(0,0,0,.06);

  font-size:.8rem;

  letter-spacing:2px;

  margin-bottom:2rem;
}

.hero-left h1{
  font-family:var(--serif);
  margin-top: -5px;;
  font-size:68px;
  line-height:1.05;
  letter-spacing:-.02em;
}

.hero-left h1 span{
  background:linear-gradient(
    90deg,
    #ff6a6a,
    #ffb86c,
    #6bff95,
    #6aa8ff,
    #b56bff
  );
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.hero-left .hero-text{
  font-family: "Inter", sans-serif;
  font-size: 1rem;
  color: #6b7280;
  max-width: 420px;
  line-height: 1.6;
}

.hero p {
  font-size: 16px;
  color: #6b7280;
  max-width: 420px;
}

.hero-text{
  margin-top:2rem;

  max-width:420px;

  color:var(--muted);

  font-size:1.1rem;

  line-height:1.7;
}

.camera {
  position: relative;
  background: #000;
  border-radius: 0px;
  aspect-ratio: 4 / 3;
  box-shadow: 0 30px 80px rgba(0,0,0,.25);
  overflow: hidden;
}

.camera-panel{
  grid-column: 1;
  width:110%;
  max-width: 600px;
  position:relative;
  bottom: -29px;
  background: rgba(0,0,0,.92);
  border-radius: 0px; /* Matching the inspo's curves */
  overflow: hidden;
  aspect-ratio: 16/9;

  box-shadow:
    0 20px 60px rgba(0,0,0,.35),
    inset 0 0 0 1px rgba(255,255,255,.08);
  z-index: 10;
}



.camera-overlay {
    padding: 36px;
    pointer-events: none; /* Allows clicks to pass through to the video */
    position: absolute;
    inset: 0;
    z-index: 10;
}

.camera-overlay p {
  color: rgba(255,255,255,0.7);
  margin-top: 10px;
  font-size: 0.9rem;
}

.rec-indicator {
    color: #ff4d4d;
    font-weight: 800;
    font-family: sans-serif;
    font-size: 0.9rem;
}

.rec-row{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:2px;
}

.rec-dot{
  width:8px;
  height:8px;
  background:#ff4d4d;
  border-radius:50%;
  box-shadow:0 0 8px rgba(255,77,77,.8);
}

.rec-text{
  font-size:.75rem;
  letter-spacing:2px;
  color:#ff4d4d;
  font-weight:700;
}

.camera-hint{
  font-size:.85rem;
  color:rgba(255,255,255,.7);
}

.corner{
  position:absolute;
  width:34px;
  height:34px;
  border-color:#ffffff;
}

.corner.tl{
  top:25px; left:25px;
  border-top:3px solid #fff;
  border-left:3px solid #fff;
}

.corner.tr{
  top:25px; right:25px;
  border-top:3px solid #fff;
  border-right:3px solid #fff;
}

.corner.bl{
  bottom:25px; left:25px;
  border-bottom:3px solid #fff;
  border-left:3px solid #fff;
}

.corner.br{
  bottom:25px; right:25px;
  border-bottom:3px solid #fff;
  border-right:3px solid #fff;
}

.camera-panel::before{
  content:"";
  position:absolute;
  inset:-18px;
  border-radius:0px;

  background:
    linear-gradient(
      90deg,
      #ff5c8a,
      #ffb84d,
      #7dc95e,
      #4d96ff,
      #8b5cf6
    );

  opacity:.25;
  filter:blur(28px);
  animation:rainbowGlow 12s linear infinite;

  z-index:-1;
}

.camera-panel::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:0px;
  pointer-events:none;

  box-shadow:
  inset 0 0 40px rgba(255,255,255,.05);
}

.glass-blob{
  position:absolute;
  right:-120px;
  top:80px;

  width:260px;
  height:420px;

  border-radius:140px;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.35),
      rgba(255,255,255,.1)
    );

  backdrop-filter:blur(30px);

  box-shadow:
    0 30px 80px rgba(139,92,246,.25);

  transform:rotate(8deg);
}

video{
  width:100%;
  transform: scaleX(-1);

  border-radius:0px;

  display:block;

  background:black;

  aspect-ratio:16/9;

  object-fit:cover;
  zoom:1.2;
}

#canvas{
  width:100%;
  border-radius:28px;
  display:none;
  background:black;
  aspect-ratio:16/9;
  object-fit:cover;
  transform: scaleX(-1);
}

.controls{
  display:flex;

  justify-content:center;

  gap:1rem;

  margin-top: -490px;
  margin-left: 25px;
  grid-column: 1 / -1;
}

button{
  border:none;
  border-radius:20px;
  padding:1rem 2rem;

  font-weight:600;
  font-size:.9rem;

  background:rgba(255,255,255,.6);
  backdrop-filter:blur(16px);

  box-shadow:
    0 10px 30px rgba(0,0,0,.12),
    inset 0 0 0 1px rgba(255,255,255,.4);

  transition:.25s;
}

#captureButton{
  background:
    linear-gradient(
      90deg,
      #ff5c8a,
      #8b5cf6
    );
  color:white;
}

button:hover{
  transform:translateY(-2px);
}

button:disabled{
  opacity:.5;
}

@media(max-width:900px){

  .hero-section{

    grid-template-columns:1fr;

    text-align:center;
  }

  .hero-text{
    margin-left:auto;
    margin-right:auto;
  }
}

.hero-right{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 240px;
  gap:24px;
  align-items:start;
}

.photostrip-preview{
  grid-column: 3;
  position:relative;
  right:-440px;
  top: -380px;
  margin-top:0;
  align-self:center;
  justify-self:center;
}

.strip-card {
  width: 210px;
  aspect-ratio: 1797 / 4672;
  position: relative;
  border-radius: 17px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,.18);
  animation: floaty 5s ease-in-out infinite;
  transform: rotate(4deg);
  background: #222;
  z-index: 10;
}

.strip-frame-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: #ffdefddc center/cover no-repeat;
}

.strip-photo {
  position: absolute;
  overflow: hidden;
  z-index: 2;
  background: transparent;
  border-radius: 0;
}

#photo1 {
  top: 11.39%;
  left: 10.01%;
  width: 79.81%;
  height: 21.53%;
  border-radius: 0;
}

#photo2 {
  top: 35.77%;
  left: 10.01%;
  width: 79.81%;
  height: 21.51%;
  border-radius: 0;
}

#photo3 {
  top: 60.10%;
  left: 10.01%;
  width: 79.81%;
  height: 21.51%;
  border-radius: 0;
}


.strip-photo img {
  width:100%;
  height:100%;
  object-fit:cover

}

.photo-with-frame {
  position: relative;
  width: 100%;
  height: 100%;
}

.photo-with-frame .inner-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  z-index: 1;
}

.photo-with-frame{ position:relative; width:100%; height:100%; border-radius:12px; overflow:hidden; }
.photo-with-frame .inner-photo{ display:block; width:100%; height:100%; object-fit:cover; }
.photo-with-frame .frame-overlay{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; object-fit:cover; }

.frames-panel{ margin-top:16px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; grid-column: 1 / -1; }
.frames-list{ display:flex; gap:8px; }
.frame-option{ padding:.6rem .9rem; border-radius:12px; background:rgba(255,255,255,.7); border:none; cursor:pointer; box-shadow:0 8px 20px rgba(0,0,0,.06); }
.frame-option.active{ outline:3px solid rgba(139,92,246,.12); transform:translateY(-3px); }
.frames-hint{ font-size:.8rem; color:var(--muted); }



.logo-row::after{
  content:"";

  display:block;

  width:296px;
  height:4px;

  margin-top:10px;
  margin-left:1px;

  border-radius:999px;

  background:
  linear-gradient(
    90deg,
    #ff5c8a,
    #ffb84d,
    #7dc95e,
    #4d96ff,
    #8b5cf6
  );
}



@keyframes rainbowGlow{
  0%{ filter:hue-rotate(0deg); }
  100%{ filter:hue-rotate(360deg); }
}

@keyframes floaty{
  0%, 100%{ transform:rotate(8deg) translateY(0px); }
  50%{ transform:rotate(8deg) translateY(-10px); }
}

.camera-wrap{
  position:relative;
}

.controls button{
  display:flex;
  align-items:center;
  gap:10px;

  padding:1rem 1.6rem;
  border-radius:18px;
  border:none;

  font-weight:600;
  background:rgba(255,255,255,.7);
  backdrop-filter:blur(14px);

  box-shadow:
    0 15px 35px rgba(0,0,0,.15),
    inset 0 0 0 1px rgba(255,255,255,.6);

  transition:.25s;
}

#captureButton{
  background:linear-gradient(90deg,#ff6a6a,#8b5cf6);
  color:white;
}


.about-section{
  margin-top:120px;

  display:grid;

  grid-template-columns:
  repeat(2,1fr);

  gap:30px;
}

.about-card{
  background:
  rgba(221, 182, 182, 0.65);

  backdrop-filter:
  blur(20px);

  border-radius:30px;

  padding:30px;

  box-shadow:
  0 20px 60px rgba(0,0,0,.05);
}

.about-card h2{
  margin-top:-2;

  font-family:var(--serif);
}

.about-card p{
  line-height:1.3;
}

.countdown{
  position:absolute;
  inset:0;

  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10rem;
  font-weight:900;

  color:white;

  opacity:.9;
  z-index:20;
  pointer-events:none;

  letter-spacing:-1px;
}

.strip-header {
    font-family: 'Pinyon Script', cursive;
    font-size: 1.8rem; /* Large and elegant */
    color: #111827;
    text-align: center;
    margin-bottom: 10px;
}

.footer-org {
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: linear-gradient(90deg, #ff5c8a, #ffb84d, #7dc95e, #4d96ff, #8b5cf6);
    margin-top: 10px;
}

.strip-card p {
    font-family: 'Inter', sans-serif; /* Keep the hashtag clean */
    font-weight: 600;
    font-size: 0.9rem;
    color: #e26aec;
    margin-top: 10px;
}

.watermark {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-family: sans-serif;
  font-size: 0.8rem;
  color: #333; /* Dark gray */
  opacity: 0.4; /* Makes it very subtle */
  pointer-events: none; /* Allows clicks to pass through to elements behind it */
  z-index: 1000;
}


.frame-credits {
  margin-top: -1000; 
  font-family: 'Inter', -apple-system, sans-serif;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #333333;
  opacity: 0.5; /* Slightly higher than watermark for better readability */
  text-align: center; /* Keeps it centered under the selection area */
}

/* Mobile Optimizations - Keep Desktop Design Intact */
@media(max-width:768px){
  .wrapper{
    padding: 1.5rem;
  }

  .hero-section{
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .hero-left h1{
    font-size: 68px;
  }

  .camera-panel{
    width: 100%;
    bottom: 0;
    margin-left: auto;
    margin-right: auto;
  }

  .hero-right{
    grid-template-columns: 1fr;
  }

  .photostrip-preview{
    position: static;
    right: auto;
    top: auto;
    margin-top: 2rem;
    text-align: center;
  }

  .controls{
    flex-wrap: wrap;
    margin-top: 1rem;
    margin-left: auto;
    margin-right: auto;
    gap: 0.75rem;
    width: 100%;
    justify-content: center;
  }

  .controls button{
    flex: 1;
    min-width: 120px;
    padding: 0.875rem 1.5rem;
    font-size: 0.85rem;
  }


}



.frames-panel{
  margin-top:35px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.frames-list{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

.frame-option{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;

  width:60px;
  height: 20;
  padding:5px;

  border:none;
  border-radius:10px;

  background:rgba(255, 255, 255, 0);
  cursor:pointer;

  box-shadow:0 4px 14px rgba(0,0,0,.08);

  flex-shrink:0;
}

.frame-option:hover{
  transform:translateY(-3px);
}

.frame-option.active{
  outline:3px solid rgba(139,92,246,.18);
}

.frame-thumb{
  width:30px;
  height:84px;

  border-radius:8px;
  overflow:hidden;

  background:#f3f4f600;
}

.frame-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.frame-thumb--none{
  display:flex;
  align-items:center;
  justify-content:center;

  font-size:1.3rem;
  color:#9ca3af;
}

.frame-label{
  font-size:.6rem;
  text-transform:uppercase;
}

.frames-hint {
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.5;
}

  .strip-card{
    transform: rotate(0deg);
  }


  .watermark{
    bottom: 10px;
    right: 10px;
    font-size: 0.7rem;
  }

  .frame-credits{
    margin-top: -22rem;
    font-size: 13px;
  }


@media(max-width:480px){}
  .wrapper {
    padding: 1rem;
  }

  .hero-left h1{
    font-size: 68px;
  }

  .hero-left .hero-text{
    font-size: 0.95rem;
  }

  .tag{
    font-size: 0.7rem;
    padding: 0.6rem 1rem;
  }

  .camera-panel{
    aspect-ratio: 16/12;
  }

  video,
  #canvas{
    aspect-ratio: 16/12;
  }

  .controls{
    flex-direction: column;
  }

  .controls button{
    width: 100%;
    padding: 1rem;
    font-size: 0.9rem;
  }

  .photostrip-preview{
    margin-top: 1rem;
  }


  .frames-list{
    width: 100%;
  }

.frame-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 8px 8px 6px;
  border-radius: 14px;
  background: rgba(255,255,255,0.75);
  border: 2px solid transparent;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.07);
  transition: transform 0.18s, border-color 0.18s, box-shadow 0.18s;
  width: 68px;        /* ← fixed width, stops it from expanding */
  flex-shrink: 0;     /* ← won't compress either */

  .about-card{
    padding: 1.5rem;
  }

  .about-card h2{
    font-size: 1.5rem;
  }

  .about-card p{
    font-size: 0.9rem;
  }
}

.shutter-btn {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;

  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;

  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  box-shadow:
    0 0 0 3px rgba(255,255,255,0.6),
    0 0 0 6px rgba(255,255,255,0.15),
    0 8px 24px rgba(0,0,0,0.35);

  display: flex;
  align-items: center;
  justify-content: center;

  transition: transform 0.15s, box-shadow 0.15s, opacity 0.2s;
}

.shutter-btn:hover:not(:disabled) {
  transform: translateX(-50%) scale(1.08);
  box-shadow:
    0 0 0 3px rgba(255,255,255,0.9),
    0 0 0 7px rgba(255,255,255,0.2),
    0 10px 30px rgba(0,0,0,0.4);
}

.shutter-btn:active:not(:disabled) {
  transform: translateX(-50%) scale(0.93);
}

.shutter-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.shutter-inner {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: white;
  display: block;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.15);
  transition: background 0.15s;
}

.shutter-btn:hover:not(:disabled) .shutter-inner {
  background: linear-gradient(135deg, #ff6a6a, #8b5cf6);
}

.shutter-btn {
  pointer-events: auto; 
  position: absolute;
}
.camera-panel {
  padding-bottom: 44px;
}

.frames-list {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: flex-end;
}

.frame-option {
  cursor: pointer;
  border-radius: 12px;
  border: 2.5px solid transparent;
  transition: transform 0.18s, border-color 0.18s, box-shadow 0.18s;
  padding: 0;
  background: none;
  box-shadow: none;
}

.frame-option:hover {
  transform: translateY(-4px);
}

.frame-option.active {
  border-color: #8b5cf6;
  box-shadow: 0 0 0 3px rgba(139,92,246,0.2);
  transform: translateY(-4px);
}

.frames-list {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: flex-end;
}

.frame-option {
  cursor: pointer;
  border-radius: 12px;
  border: 3px solid transparent;
  transition: transform 0.18s, border-color 0.18s, box-shadow 0.18s;
  padding: 0;
  background: none;
  box-shadow: none;
}

.frame-option:hover {
  transform: translateY(-4px);
}

.frame-option.active {
  border-color: #8b5cf6;
  box-shadow: 0 0 0 3px rgba(139,92,246,0.2);
  transform: translateY(-4px);
}

.frame-thumb-strip {
  width: 71px;
  height: fit-content;
  border-radius: 10px;
  padding: 8px 7px 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.12);
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.fts-slot {
  width: 100%;
  height: 47px;
  border-radius: 5px;
  background: rgba(200,200,200,0.45);
  flex-shrink: 0;
}

.fts-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-top: 2px;
}

.frame-thumb--classic {
  background-color: #ffffff;
  border: 1.5px solid #e5e7eb;
}
.frame-thumb--classic .fts-slot {
  background: #e5e7eb;
  border: 1.5px solid #9ca3af;
}
.frame-thumb--classic .fts-label { color: #111827; }

.frame-thumb--frame1 { background-image: url('frames/Frame1.png'); }
.frame-thumb--frame2 { background-image: url('frames/Frame2.png'); }
.frame-thumb--frame3 { background-image: url('frames/Frame3.png'); }
.frame-thumb--frame4 { background-image: url('frames/Frame4.png'); }
.frame-thumb--frame5 { background-image: url('frames/Frame5.png'); }
.frame-thumb--frame6 { background-image: url('frames/Frame6.png'); }
.frame-thumb--frame7 { background-image: url('frames/Frame7.png'); }

/* Slots become transparent windows so the frame design shows through */
.frame-thumb--frame1 .fts-slot,
.frame-thumb--frame2 .fts-slot,
.frame-thumb--frame3 .fts-slot,
.frame-thumb--frame4 .fts-slot,
.frame-thumb--frame5 .fts-slot,
.frame-thumb--frame6 .fts-slot,
.frame-thumb--frame7 .fts-slot {
  background: rgba(255, 255, 255, 0.048);
}

/* Labels need to be readable over any frame color */
.frame-thumb--frame1 .fts-label,
.frame-thumb--frame2 .fts-label,
.frame-thumb--frame3 .fts-label,
.frame-thumb--frame4 .fts-label,
.frame-thumb--frame5 .fts-label,
.frame-thumb--frame6 .fts-label,
.frame-thumb--frame7 .fts-label {
  color: #fff;
  text-shadow: 0 1px 4px rgba(0,0,0,0.6);
}
