:root{
  --bg:#120e0b;
  --surface:#1d1611;
  --surface-2:#251c15;
  --gold:#c8974f;
  --gold-soft:#e6c383;
  --rose:#b26a5b;
  --cream:#f3e8d6;
  --muted:#9c8a76;
  --line: rgba(200,151,79,0.22);
  --shadow: 0 24px 60px rgba(0,0,0,0.6);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}

body{
  background:
    radial-gradient(1100px 550px at 12% -8%, rgba(200,151,79,0.11), transparent 60%),
    radial-gradient(900px 500px at 108% 8%, rgba(178,106,91,0.14), transparent 55%),
    radial-gradient(700px 500px at 50% 120%, rgba(200,151,79,0.06), transparent 60%),
    var(--bg);
  color:var(--cream);
  font-family:'Vazirmatn', sans-serif;
  min-height:100vh;
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:0.035;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.sprockets{
  display:flex; justify-content:center; gap:14px;
  padding:16px 0; opacity:0.5;
}
.sprockets span{
  width:7px; height:7px; border-radius:2px;
  background:var(--gold); opacity:0.55;
}

header{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(16px);
  background:rgba(18,14,11,0.7);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:1140px; margin:0 auto;
  padding:20px 28px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{
  width:40px; height:40px; border-radius:50%;
  border:1.5px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-size:17px; color:var(--gold-soft); flex-shrink:0;
  background:radial-gradient(circle at 30% 30%, rgba(200,151,79,0.18), transparent 70%);
}
.brand-text .title{ font-weight:700; font-size:17.5px; color:var(--cream); }
.brand-text .subtitle{ font-size:10.5px; color:var(--muted); letter-spacing:1.5px; margin-top:2px; }
.header-cta{
  font-size:12.5px; font-weight:600; color:#1b140f;
  background:linear-gradient(90deg, var(--gold-soft), var(--gold));
  padding:9px 18px; border-radius:999px;
  border:none; cursor:pointer;
  box-shadow:0 10px 24px rgba(200,151,79,0.25);
  transition:transform .25s ease;
}
.header-cta:hover{ transform:translateY(-2px); }

.hero{ max-width:840px; margin:0 auto; padding:90px 28px 50px; text-align:center; }
.hero .eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11.5px; letter-spacing:2.5px; color:var(--gold-soft);
  border:1px solid var(--line); padding:8px 18px; border-radius:999px;
  margin-bottom:30px; opacity:0; animation: fadeUp .8s ease forwards;
}
.hero h1{
  font-size:clamp(28px, 5vw, 48px); font-weight:900; line-height:1.55;
  color:var(--cream); opacity:0; animation: fadeUp .9s ease forwards; animation-delay:.15s;
}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(90deg, var(--gold-soft), var(--rose));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.hero p{
  margin-top:22px; font-size:16px; line-height:2.1; color:var(--muted);
  opacity:0; animation: fadeUp .9s ease forwards; animation-delay:.3s;
}
.hero .signature{
  margin-top:36px; font-size:13px; color:var(--muted); letter-spacing:1px;
  opacity:0; animation: fadeUp .9s ease forwards; animation-delay:.45s;
}
.hero .signature b{ color:var(--gold-soft); font-weight:600; }

@keyframes fadeUp{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }

.gallery-section{ max-width:1140px; margin:0 auto; padding:20px 28px 30px; }
.gallery-head{
  display:flex; align-items:baseline; justify-content:space-between;
  margin-bottom:36px; flex-wrap:wrap; gap:10px;
  padding-bottom:18px; border-bottom:1px solid var(--line);
}
.gallery-head h2{ font-size:23px; font-weight:800; color:var(--cream); }
.gallery-head span{ font-size:12px; color:var(--muted); letter-spacing:0.5px; }

.gallery{ display:grid; grid-template-columns:repeat(5, 1fr); gap:22px; }
@media (max-width:980px){ .gallery{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px){ .gallery{ grid-template-columns:repeat(2,1fr); gap:14px;} }

.frame{
  position:relative;
  border-radius:14px;
  padding:10px 10px 14px;
  background:linear-gradient(160deg, #efe3cd, #d6c6a2);
  box-shadow:var(--shadow);
  transform:rotate(var(--r,0deg));
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
  opacity:0; animation: frameIn .6s ease forwards;
}
.frame:nth-child(5n+1){ --r:-2.2deg; }
.frame:nth-child(5n+2){ --r:1.6deg; }
.frame:nth-child(5n+3){ --r:-1deg; }
.frame:nth-child(5n+4){ --r:2.2deg; }
.frame:nth-child(5n+5){ --r:-1.8deg; }

@keyframes frameIn{ from{opacity:0; transform:translateY(18px) rotate(var(--r,0deg));} to{opacity:1; transform:translateY(0) rotate(var(--r,0deg));} }

.frame:hover{
  transform:rotate(0deg) translateY(-8px) scale(1.045);
  box-shadow:0 30px 70px rgba(0,0,0,0.65);
  z-index:6;
}

.photo-wrap{
  position:relative; width:100%; aspect-ratio:1/1.05;
  border-radius:6px; overflow:hidden; background:#000;
}
.photo-wrap img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover;
  filter: blur(11px) saturate(0.85) brightness(0.72) contrast(0.95);
  transform:scale(1.18);
  transition: filter .5s ease, transform .5s ease;
}
.frame:hover .photo-wrap img{
  filter: blur(9px) saturate(0.9) brightness(0.8) contrast(0.95);
  transform:scale(1.22);
}
.photo-wrap::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.05) 40%, rgba(10,7,5,0.55) 100%);
}
.lock-icon{
  position:absolute; top:10px; left:10px;
  width:26px; height:26px; border-radius:50%;
  background:rgba(15,10,7,0.55);
  backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  font-size:12px; color:var(--gold-soft);
  border:1px solid rgba(230,195,131,0.3);
}

.frame .num{
  text-align:center; font-size:10.5px; color:#4a3c2c;
  letter-spacing:0.4px; font-weight:500; margin-top:8px;
}

.view-btn{
  display:block; width:100%; margin-top:9px;
  appearance:none; border:none; cursor:pointer;
  font-family:inherit; font-weight:600; font-size:11.5px;
  letter-spacing:0.3px; color:var(--surface);
  background:linear-gradient(90deg, var(--gold-soft), var(--gold));
  padding:8px 0; border-radius:8px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.view-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(200,151,79,0.3); }

.modal-backdrop{
  position:fixed; inset:0; z-index:200;
  background:rgba(10,7,5,0.78);
  backdrop-filter:blur(6px);
  display:none; align-items:center; justify-content:center;
  padding:24px;
  opacity:0;
  transition:opacity .3s ease;
}
.modal-backdrop.show{ display:flex; opacity:1; }

.modal{
  max-width:420px; width:100%;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
  overflow:hidden;
  position:relative;
  transform:translateY(16px) scale(0.98);
  opacity:0;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s ease;
}
.modal-backdrop.show .modal{ transform:translateY(0) scale(1); opacity:1; }

.modal-photo{ position:relative; width:100%; aspect-ratio:16/11; background:#000; }
.modal-photo img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter: blur(14px) saturate(0.85) brightness(0.68);
  transform:scale(1.2);
}
.modal-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.1), rgba(10,7,5,0.6));
}
.modal-photo .badge{
  position:absolute; bottom:14px; right:16px; left:16px;
  text-align:center;
  font-size:11.5px; color:var(--gold-soft);
  letter-spacing:0.5px;
}

.modal-body{ padding:26px 26px 28px; text-align:center; }
.modal-body p{ color:var(--cream); font-size:14.5px; line-height:2; margin-bottom:20px; }
.modal-body .note{ margin-top:14px; font-size:11px; color:var(--muted); }

.btn{
  appearance:none; border:none; cursor:pointer; font-family:inherit;
  font-weight:700; font-size:14.5px; letter-spacing:0.3px;
  padding:14px 30px; border-radius:999px; color:#1b140f;
  background:linear-gradient(90deg, var(--gold-soft), var(--gold));
  box-shadow:0 14px 30px rgba(200,151,79,0.25);
  transition: transform .25s ease, box-shadow .25s ease;
  width:100%;
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 18px 38px rgba(200,151,79,0.35); }
.btn:active{ transform:translateY(0); }

.modal-close{
  position:absolute; top:14px; left:14px; z-index:2;
  width:30px; height:30px; border-radius:50%;
  background:rgba(15,10,7,0.55); backdrop-filter:blur(4px);
  border:1px solid rgba(230,195,131,0.3);
  color:var(--gold-soft); font-size:15px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}

.cta-section{ max-width:640px; margin:30px auto 0; padding:40px 28px 110px; text-align:center; }
.cta-section p{ color:var(--muted); font-size:14px; margin-bottom:22px; line-height:1.9; }
.cta-section .btn{ width:auto; padding:16px 42px; }

footer{
  text-align:center; padding:26px 20px 40px;
  font-size:11.5px; color:var(--muted); letter-spacing:0.5px;
}
