:root{
  --paper:#fbf3ee;
  --paper-soft:#fffaf6;
  --paper-warm:#f3e2d9;
  --ink:#2b1716;
  --muted:#6c5550;
  --rose:#be6969;
  --rose-dark:#9e4d4f;
  --gold:#c4934a;
  --sea:#1888aa;
  --terracotta:#d76545;
  --blue:#071929;
  --blue-soft:#10273c;
  --line:rgba(91,55,42,.18);
  --white:rgba(255,255,255,.78);
  --shadow:0 28px 80px rgba(56,29,23,.16);
  --serif:Georgia, "Times New Roman", Times, serif;
  --sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 76% 20%, rgba(24,136,170,.13), transparent 22rem),
    radial-gradient(circle at 90% 34%, rgba(215,101,69,.10), transparent 18rem),
    radial-gradient(circle at 12% 12%, rgba(190,105,105,.16), transparent 24rem),
    radial-gradient(circle at 82% 2%, rgba(7,25,41,.10), transparent 22rem),
    linear-gradient(180deg, var(--paper), #fffaf6 48%, #f6e7df 100%);
  color:var(--ink);
  font-family:var(--sans);
}
body:not(.entered){overflow:hidden}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.34;
  background:
    radial-gradient(circle at 20% 18%, rgba(255,255,255,.82), transparent 18rem),
    linear-gradient(115deg, transparent 0 42%, rgba(255,255,255,.36) 42% 43%, transparent 43% 100%);
}

img,picture{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,a{font:inherit}
main,.site-footer{position:relative;z-index:1}

#soft-particles,
#celebration-burst{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
#soft-particles{z-index:2;opacity:.32}
#celebration-burst{z-index:80;opacity:0;transition:opacity .22s ease}
#celebration-burst.is-active{opacity:1}

.container{
  width:min(1160px, calc(100% - 44px));
  margin-inline:auto;
}
.section{position:relative;padding:92px 0}

.entry{
  position:fixed;
  inset:0;
  z-index:50;
  display:grid;
  place-items:center;
  padding:24px;
  text-align:center;
  background:
    radial-gradient(circle at 50% 26%, rgba(255,255,255,.92), transparent 19rem),
    radial-gradient(circle at 50% 78%, rgba(190,105,105,.20), transparent 26rem),
    linear-gradient(180deg, #fffaf6, #f4e4dc);
  transition:opacity .75s ease, visibility .75s ease, transform .75s ease;
}
.entry::before,
.entry::after{
  content:"✦";
  position:absolute;
  color:var(--gold);
  font-size:clamp(1.7rem, 4vw, 3.1rem);
  opacity:.72;
}
.entry::before{left:12%;top:16%}
.entry::after{right:13%;bottom:17%;transform:rotate(25deg)}
.entry.is-hidden{
  opacity:0;
  visibility:hidden;
  transform:scale(1.015);
  pointer-events:none;
}
.entry__frame{
  width:min(820px,100%);
  padding:clamp(34px, 8vw, 76px) clamp(22px, 6vw, 66px);
  max-height:calc(100vh - 32px);
  border:1px solid rgba(196,147,74,.30);
  box-shadow:0 32px 100px rgba(63,28,23,.13);
  background:rgba(255,250,246,.66);
  backdrop-filter:blur(14px);
}
.entry-date{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(5.4rem, 18vh, 13rem);
  line-height:.72;
  letter-spacing:0;
  color:var(--rose);
  text-shadow:0 18px 44px rgba(105,48,45,.12);
}
.entry-month{
  margin:0 0 18px;
  color:var(--gold);
  font-size:clamp(1.4rem, 4vw, 2.6rem);
  font-family:var(--serif);
  text-transform:uppercase;
}
.entry h1{
  margin:0 auto;
  max-width:760px;
  font-family:var(--serif);
  font-size:clamp(2.35rem, 7vh, 6.1rem);
  font-weight:500;
  line-height:.96;
  letter-spacing:0;
}
.entry-line{
  width:min(610px,100%);
  margin:14px auto 0;
  color:var(--muted);
  font-size:clamp(1.02rem, 2vw, 1.22rem);
  line-height:1.7;
}

@media (max-height: 760px) and (min-width: 721px){
  .entry__frame{padding:26px 42px}
  .entry-month{margin-bottom:10px;font-size:1.35rem}
  .entry-line{font-size:1rem;line-height:1.52}
  .btn--primary{margin-top:20px}
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:14px 25px;
  border:0;
  border-radius:999px;
  cursor:pointer;
  font-size:.94rem;
  font-weight:850;
  letter-spacing:0;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn--primary{
  margin-top:30px;
  color:#fff;
  background:linear-gradient(135deg, var(--rose-dark), #d9877d);
  box-shadow:0 18px 42px rgba(158,77,79,.25);
}
.btn--ghost{
  margin-top:34px;
  color:#ffe7cc;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,231,204,.34);
}
.btn--ghost:hover{background:rgba(255,255,255,.14)}
.btn--auguri{position:relative;overflow:hidden}
.btn--auguri span{position:relative;z-index:1}
.btn--auguri::after{
  content:"";
  position:absolute;
  inset:-35% -20%;
  background:linear-gradient(110deg, transparent 0 36%, rgba(255,255,255,.46) 46%, transparent 58% 100%);
  transform:translateX(-120%);
  animation:buttonShine 2.8s ease-in-out infinite;
}
@keyframes buttonShine{
  0%,42%{transform:translateX(-120%)}
  64%,100%{transform:translateX(120%)}
}

.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:84px 0 98px;
  overflow:hidden;
}
.hero__grid{
  display:grid;
  grid-template-columns:minmax(170px, .66fr) minmax(430px, 1.18fr) minmax(170px, .66fr);
  gap:clamp(18px, 4vw, 44px);
  align-items:center;
}
.hero__art{
  position:absolute;
  z-index:0;
  width:min(34vw, 460px);
  aspect-ratio:1;
  border:1px solid rgba(196,147,74,.24);
  border-radius:50%;
  opacity:.42;
  background:radial-gradient(circle, rgba(255,255,255,.28), transparent 66%);
}
.hero__art--left{left:-12%;top:12%;box-shadow:inset 0 0 0 36px rgba(24,136,170,.035)}
.hero__art--right{right:-15%;bottom:4%}
.hero__copy{
  position:relative;
  z-index:1;
  text-align:center;
}
.date-mark{
  display:inline-grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:14px;
  margin:0 0 20px;
  color:var(--gold);
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.date-mark::before,
.date-mark::after{
  content:"";
  width:52px;
  height:1px;
  background:rgba(196,147,74,.48);
}
.hero h1,
.section-heading h2,
.message h2,
.story__copy h2,
.letter-card h2,
.finale h2{
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:0;
  line-height:.98;
}
.hero h1{
  font-size:clamp(3.05rem, 6.25vw, 6.35rem);
}
.hero h1 span{
  display:block;
  color:var(--rose);
  font-size:1.12em;
}
.lead{
  max-width:620px;
  margin:22px auto 0;
  color:#4a3330;
  font-family:var(--serif);
  font-size:clamp(1.12rem, 1.8vw, 1.42rem);
  line-height:1.58;
}

.photo-frame{
  position:relative;
  z-index:1;
  margin:0;
  padding:10px;
  background:#fff;
  border:1px solid rgba(78,45,37,.16);
  box-shadow:0 30px 80px rgba(43,23,22,.20);
}
.photo-frame::before{
  content:"";
  position:absolute;
  inset:-12px;
  z-index:-1;
  border:1px solid rgba(196,147,74,.30);
  opacity:.78;
}
.photo-frame::after{
  content:"";
  position:absolute;
  inset:auto 16px 12px;
  height:28px;
  z-index:-1;
  background:rgba(43,23,22,.22);
  filter:blur(18px);
}
.photo-frame img{
  width:100%;
  height:clamp(370px, 48vw, 590px);
  object-fit:cover;
}
.photo-frame--riviera{
  transform:rotate(-4.2deg);
  box-shadow:0 34px 92px rgba(24,80,101,.24), 0 18px 42px rgba(43,23,22,.12);
}
.photo-frame--riviera::before{border-color:rgba(24,136,170,.25)}
.photo-frame--riviera img{object-position:center 48%}
.photo-frame--court{transform:rotate(5deg)}
.photo-frame--court img{object-position:center 46%}
.mobile-court-photo{display:none}

.section-kicker{
  margin:0 0 16px;
  color:var(--gold);
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.section-heading{
  width:min(760px,100%);
  margin:0 auto 42px;
  text-align:center;
}
.section-heading h2{
  font-size:clamp(2.15rem, 5vw, 4.8rem);
}

.values{padding-top:20px}
.quality-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:0;
  border-top:1px solid rgba(196,147,74,.32);
  border-bottom:1px solid rgba(196,147,74,.32);
}
.quality{
  position:relative;
  min-height:268px;
  padding:42px clamp(18px, 3vw, 36px);
  text-align:center;
  overflow:hidden;
  transition:background .35s ease, transform .35s ease;
}
.quality::after{
  content:"";
  position:absolute;
  left:18%;
  right:18%;
  bottom:0;
  height:2px;
  background:linear-gradient(90deg, transparent, rgba(196,147,74,.72), transparent);
  transform:scaleX(0);
  transition:transform .35s ease;
}
.quality:hover{
  background:linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,250,246,.05));
  transform:translateY(-4px);
}
.quality:hover::after{transform:scaleX(1)}
.quality + .quality{border-left:1px solid rgba(196,147,74,.25)}
.quality__icon{
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  margin:0 auto 22px;
  color:var(--gold);
}
.quality__icon svg{
  width:52px;
  height:52px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.35;
  stroke-linejoin:round;
  stroke-linecap:round;
}
.quality h3{
  margin:0 0 14px;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(1.65rem, 2.6vw, 2.28rem);
  line-height:1.08;
}
.quality p{
  margin:0 auto;
  max-width:285px;
  color:var(--muted);
  line-height:1.72;
}

.message__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(280px, .62fr);
  gap:clamp(30px, 6vw, 76px);
  align-items:center;
}
.message__copy h2,
.story__copy h2,
.letter-card h2{
  font-size:clamp(2.25rem, 5.4vw, 5.05rem);
}
.message__copy p,
.story__copy p,
.letter-card p{
  color:var(--muted);
  font-size:1.06rem;
  line-height:1.86;
}
.message__copy p{max-width:710px}
.quote-card{
  position:relative;
  padding:42px 38px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(196,147,74,.30);
  box-shadow:0 22px 70px rgba(64,31,24,.11);
}
.quote-card::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(196,147,74,.18);
  pointer-events:none;
}
.quote-card__mark{
  display:block;
  height:42px;
  color:var(--gold);
  font-family:var(--serif);
  font-size:5.4rem;
  line-height:.7;
}
.quote-card p{
  margin:12px 0 0;
  color:#49302c;
  font-family:var(--serif);
  font-size:clamp(1.35rem, 2.8vw, 2.1rem);
  line-height:1.28;
}
.quote-card__heart{
  display:block;
  margin-top:24px;
  color:var(--rose);
  font-size:1.8rem;
}

.portrait-story{padding-top:58px}
.story__grid{
  display:grid;
  grid-template-columns:minmax(260px, .78fr) minmax(0, 1fr);
  gap:clamp(32px, 6vw, 76px);
  align-items:center;
}
.story-photo{
  position:relative;
  margin:0;
  padding:13px;
  background:#fff;
  border:1px solid rgba(196,147,74,.28);
  box-shadow:var(--shadow);
}
.story-photo::before{
  content:"";
  position:absolute;
  inset:26px -22px -22px 22px;
  z-index:-1;
  border:1px solid rgba(190,105,105,.30);
}
.story-photo img{
  width:100%;
  height:min(640px, 72vw);
  min-height:420px;
  object-fit:cover;
  object-position:center 36%;
}

.letter{padding-top:70px}
.letter-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, .56fr);
  gap:clamp(26px, 5vw, 56px);
  align-items:center;
  width:min(1000px,100%);
  margin:auto;
  padding:clamp(40px, 6vw, 76px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,250,246,.88)),
    radial-gradient(circle at 12% 0, rgba(196,147,74,.16), transparent 22rem);
  border:1px solid rgba(196,147,74,.30);
  box-shadow:0 28px 88px rgba(55,28,22,.14);
}
.letter-card::before{
  content:"";
  position:absolute;
  inset:16px;
  border:1px solid rgba(196,147,74,.28);
  pointer-events:none;
}
.seal{
  position:absolute;
  top:-27px;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  border-radius:50%;
  color:#fff6dc;
  background:radial-gradient(circle at 35% 28%, #e8c783, #9d6e29 72%);
  box-shadow:0 14px 34px rgba(103,70,28,.26);
}
.letter-card__text,
.letter-card__photo{position:relative;z-index:1}
.letter-card p{margin:16px 0}
.letter-card__closing{
  margin-top:28px!important;
  color:var(--rose)!important;
  font-family:var(--serif);
  font-size:1.55rem!important;
}
.letter-card__photo{
  margin:0;
  justify-self:end;
  width:min(390px,100%);
  padding:10px;
  background:#fff;
  border:1px solid rgba(91,55,42,.14);
  transform:none;
  box-shadow:0 18px 54px rgba(44,22,18,.17);
}
.letter-card__photo img{
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center center;
}

.finale{
  padding:98px 0 112px;
  color:#fffaf4;
}
.finale__inner{
  position:relative;
  overflow:hidden;
  padding:clamp(56px, 8vw, 96px) clamp(22px, 6vw, 72px);
  text-align:center;
  background:
    radial-gradient(circle at 0 100%, rgba(196,147,74,.24), transparent 18rem),
    radial-gradient(circle at 72% 18%, rgba(24,136,170,.20), transparent 18rem),
    radial-gradient(circle at 100% 0, rgba(190,105,105,.18), transparent 20rem),
    linear-gradient(135deg, var(--blue), var(--blue-soft));
  box-shadow:0 34px 100px rgba(7,25,41,.28);
}
.finale__inner::before,
.finale__inner::after{
  content:"";
  position:absolute;
  width:360px;
  aspect-ratio:1;
  border:1px solid rgba(196,147,74,.27);
  border-radius:50%;
}
.finale__inner::before{left:-160px;bottom:-180px}
.finale__inner::after{right:-130px;top:-150px}
.finale .section-kicker{color:#e7bd75}
.finale h2{
  position:relative;
  z-index:1;
  width:min(850px,100%);
  margin:auto;
  color:#fffaf4;
  font-size:clamp(2.2rem, 5.4vw, 5.35rem);
  line-height:1.08;
}
.finale h2::after{
  content:"";
  display:block;
  width:92px;
  height:1px;
  margin:28px auto 0;
  background:rgba(231,189,117,.62);
}
.finale__wish{
  position:relative;
  z-index:1;
  width:min(720px,100%);
  margin:26px auto 0;
  color:rgba(255,250,244,.84);
  line-height:1.75;
}
.finale__albanian{
  position:relative;
  z-index:1;
  margin:30px 0 0;
  color:#e8bd71;
  font-family:var(--serif);
  font-size:clamp(2.15rem, 6vw, 5rem);
  font-style:italic;
  line-height:1;
}
.finale__friendship{
  position:relative;
  z-index:1;
  margin:22px 0 0;
  color:rgba(255,250,244,.76);
}

.site-footer{
  padding:26px 0 38px;
  border-top:1px solid rgba(196,147,74,.25);
  color:var(--muted);
  font-size:.92rem;
  text-align:center;
}
.footer__inner{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
}

.reveal{
  opacity:1;
  transform:none;
  transition:none;
}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.delay-1,.delay-2{transition-delay:0s}

@media (max-width: 980px){
  .section{padding:78px 0}
  .hero{
    min-height:auto;
    padding:72px 0 84px;
  }
  .hero__grid{
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "copy copy"
      "library court";
    align-items:start;
  }
  .hero__copy{grid-area:copy;max-width:760px;margin:0 auto 18px}
  .photo-frame--riviera{grid-area:library;transform:rotate(-2.5deg)}
  .photo-frame--court{grid-area:court;transform:rotate(2.5deg)}
  .photo-frame img{height:clamp(360px, 58vw, 560px)}
  .message__grid,
  .story__grid,
  .letter-card{grid-template-columns:1fr}
  .letter-card__photo{justify-self:center;width:min(420px,100%)}
}

@media (max-width: 720px){
  html{scroll-behavior:auto}
  .container{width:min(100% - 28px, 1160px)}
  .section{padding:66px 0}
  .entry{padding:16px}
  .entry__frame{padding:38px 20px}
  .entry-date{font-size:clamp(5.5rem, 31vw, 9rem)}
  .entry h1{font-size:clamp(2.35rem, 13vw, 4.4rem)}
  .hero{padding:44px 0 64px}
  .hero__grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "library";
    gap:24px;
  }
  .date-mark{gap:10px}
  .date-mark::before,
  .date-mark::after{width:34px}
  .hero h1{font-size:clamp(3.2rem, 17vw, 5.25rem)}
  .lead{font-size:1.08rem}
  .btn{width:100%;max-width:330px}
  .photo-frame{
    width:min(390px, 92%);
    margin-inline:auto;
    transform:none;
  }
  .photo-frame img{
    height:auto;
    aspect-ratio:4/5.25;
  }
  .photo-frame--court-desktop{display:none}
  .mobile-court-photo{
    display:block;
    padding:0 0 40px;
  }
  .photo-frame--court-mobile{
    width:min(350px, 88%);
    margin-inline:auto;
    transform:none;
  }
  .photo-frame--court-mobile img{
    aspect-ratio:4/4.85;
    object-fit:cover;
    object-position:center 42%;
  }
  .quality-grid{
    grid-template-columns:1fr;
    border:0;
  }
  .quality{
    min-height:0;
    padding:32px 18px;
    border-top:1px solid rgba(196,147,74,.28);
  }
  .quality + .quality{border-left:0}
  .quality:last-child{border-bottom:1px solid rgba(196,147,74,.28)}
  #values-title{
    font-size:clamp(2.25rem, 10.4vw, 3.05rem);
    line-height:1.06;
  }
  .message__copy p,
  .story__copy p,
  .letter-card p{font-size:1rem;line-height:1.78}
  .quote-card{padding:34px 24px}
  .story-photo{
    width:min(410px, 100%);
    margin-inline:auto;
  }
  .story-photo::before{display:none}
  .story-photo img{
    min-height:0;
    height:auto;
    aspect-ratio:4/5.15;
  }
  .letter-card{
    padding:44px 22px 28px;
  }
  .letter-card::before{inset:10px}
  .letter-card__photo{
    justify-self:center;
    width:min(330px, 92%);
    transform:none;
  }
  .letter-card__photo img{
    height:auto;
    aspect-ratio:auto;
    object-fit:contain;
    object-position:center center;
  }
  .seal{width:54px;height:54px;top:-24px}
  .finale{padding-bottom:78px}
  #soft-particles{display:none}
}

@media (max-width: 430px){
  .container{width:min(100% - 22px, 1160px)}
  .hero h1{font-size:clamp(2.8rem, 16vw, 4.2rem)}
  .section-heading h2,
  .message__copy h2,
  .story__copy h2,
  .letter-card h2{font-size:clamp(2rem, 12vw, 3.45rem)}
  .finale h2{font-size:clamp(2rem, 11vw, 3.2rem)}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
  #soft-particles,#celebration-burst{display:none}
}
