:root{
    --pink:#ffd6e7;        /* arka plan ana pembe */
    --pink-deep:#ff9cc0;   /* kalpler */
    --ink:#5b2454;         /* metin */
    --white:#ffffff;
    --shadow:0 10px 30px rgba(0,0,0,.12);
    --radius:22px;
  }
  /* Yazı arkası çip/pill stili */
h1,
.hint,
label[for="pw"],
.footer {
  display: inline-block;
  background: rgba(255,255,255,.75);
  padding: 6px 12px;
  border-radius: 16px;
  border: 2px solid rgba(0,0,0,.08);
  box-shadow: var(--shadow);
  backdrop-filter: saturate(140%) blur(2px);
}
  *{box-sizing:border-box}
  html,body{height:100%}
  body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink)}
  
  /* Pembe + kalpli arka plan (SVG pattern) */
  .hearts-bg {
    background-color: var(--pink);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'><path fill='%23ff9cc0' d='M24 41s-9.6-6.4-15.2-12C3.8 23 4.3 16.6 7.9 13.1c3.6-3.5 9.1-3.1 12.5.4L24 17l3.6-3.5c3.4-3.5 8.9-3.9 12.5-.4c3.6 3.5 4.1 9.9-0.9 15.9C33.6 34.6 24 41 24 41z'/></svg>");
    background-size: 48px 48px;
  }
  
  
  /* Üstte site resmi */
  .site-header{
    display:grid;place-items:center;
    padding:12px 16px;
  }
  .header-image{
    display: block;
    margin: 0 auto;             /* ortala */
    max-width: 320px;           /* en fazla genişlik */
    max-height: 300px;          /* en fazla yükseklik */
    width: auto;                /* genişlik orantılı değişsin */
    height: auto;               /* yükseklik orantılı değişsin */
    border-radius: 18px;
    box-shadow: var(--shadow);
    object-fit: contain;        /* resim orantılı küçülsün, kırpma yapmaz */
  }
  
  /* Kenar fotoğrafları */
  /* Kenar fotoğrafları – küçük, sabit çerçeve */
.side-photo{
    position: fixed !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
  
    /* BOYUT: ekrana göre esnek ama küçük tut */
    width: clamp(180px, 22vw, 260px) !important;

    aspect-ratio: 3 / 4 !important;              /* dikey çerçeve oranı */
    height: auto !important;
  
    object-fit: cover !important; /* çerçeveyi doldur, taşanı kırp */
    border-radius: 18px !important;
    box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
    z-index: 2 !important;
    pointer-events: none !important; /* ortadaki formu kapatmasın */
    object-fit: cover !important;
    object-position: 30% center !important;
  }
  .side-photo.left  { left: 16px !important; }
  .side-photo.right { right: 16px !important; }
  
  /* Çok küçük ekranlarda daha da küçült */
  @media (max-width: 640px){
    .side-photo{ width: 120px !important; }
  }
  
  /* İhtiyaten tavan: hiçbir zaman ekranın çoğunu kaplamasın */
  .side-photo{ max-height: 80vh !important; }
  
  
  /* Orta kart */
  .center-card{
    position:relative;
    min-height:calc(100dvh - 120px); /* üst görsel + footer payı */
    display:grid;place-items:center;
    padding:24px;text-align:center;
    z-index:0;
  }
  .center-card h1{font-size:clamp(22px,4vw,40px);margin:10px 0 8px}
  .hint{max-width:720px;margin:0 auto 14px;font-size:clamp(14px,2.8vw,18px)}
  
  /* Büyük kalp animasyonu */
  .heart{
    font-size:200px;line-height:1;
    filter:drop-shadow(0 10px 20px rgba(0,0,0,.12));
    animation:pulse 1.4s ease-in-out infinite;
    color:var(--pink-deep);
    text-shadow:
    0 0 0 #000,
    1px 0 #000, -1px 0 #000, 0 1px #000, 0 -1px #000,
    1px 1px #000, -1px 1px #000, 1px -1px #000, -1px -1px #000,
    0 10px 20px rgba(0,0,0,.12); /* mevcut gölge efekti */
  }
  
  @keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
  
  /* Şifre formu */
  .pw-form{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
  .pw-form input{
    padding:12px 14px;border:2px solid var(--ink);border-radius:var(--radius);
    font-size:18px;min-width:220px;outline:none;background:var(--white);
  }
  .pw-form button{
    padding:12px 18px;border:0;border-radius:var(--radius);background:var(--ink);color:var(--white);
    box-shadow:var(--shadow);font-weight:700;cursor:pointer;transition:transform .1s ease;
  }
  .pw-form button:active{transform:scale(.98)}
  .error{display:block;width:100%;min-height:1.2em;color:#b00020;margin-top:6px}
  
  /* Footer */
  .footer{
    position:relative;
    display:grid;place-items:center;
    padding:16px 12px;
    font-size:.92rem;
    opacity:.9;
  }
  