*{box-sizing:border-box}
:root{
  --gold-1:#fff8e8;--gold-2:#f3d89b;--gold-3:#ddb05a;--gold-4:#ba7e22;
  --gold-5:#8e5c18;--gold-6:#6f4511;--paper:rgba(255,252,246,.97);
  --paper-soft:rgba(250,240,220,.97);--shadow:rgba(97,65,16,.14)
}
html,body{
  margin:0;min-height:100%;font-family:Georgia,"Times New Roman",serif;color:var(--gold-6);
  background:radial-gradient(circle at top,rgba(255,255,255,.84),transparent 34%),
  linear-gradient(180deg,#fff8eb 0%,#f4e2ba 45%,#d9a24a 100%);overflow-x:hidden
}
.bg-glow{position:fixed;border-radius:999px;filter:blur(55px);pointer-events:none;opacity:.15}
.glow-a{width:240px;height:240px;top:4%;left:-70px;background:#ffd56f}
.glow-b{width:300px;height:300px;right:-100px;bottom:6%;background:#ffc24f}
.sparkles,.sparkles::before,.sparkles::after{
  content:"";position:fixed;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 1.2px,transparent 1.5px),
  radial-gradient(circle,rgba(255,224,145,.72) 0 1px,transparent 1.3px);
  background-size:180px 180px,260px 260px;animation:twinkle 14s linear infinite;opacity:.30
}
.sparkles::before{opacity:.14;animation-duration:18s}.sparkles::after{opacity:.08;animation-duration:22s}
.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.site-shell{
  width:100%;max-width:980px;border-radius:36px;overflow:hidden;background:rgba(255,251,244,.70);
  border:1px solid rgba(192,150,72,.18);box-shadow:0 30px 90px rgba(72,45,10,.10);backdrop-filter:blur(5px)
}
.browser-bar{
  display:flex;align-items:center;gap:16px;padding:18px 20px;
  background:linear-gradient(180deg,rgba(247,239,229,.98),rgba(237,226,208,.94));
  border-bottom:1px solid rgba(191,151,74,.10)
}
.browser-dots{display:flex;gap:8px}
.browser-dots span{
  width:12px;height:12px;border-radius:999px;display:block;
  background:linear-gradient(180deg,#f0cf8d,#b67f27);box-shadow:inset 0 1px 1px rgba(255,255,255,.65)
}
.browser-url{
  flex:1;min-height:42px;display:flex;align-items:center;justify-content:center;border-radius:999px;
  background:rgba(255,255,255,.84);border:1px solid rgba(190,151,75,.12);color:#7c541f;font-size:18px
}
.invite-card{
  position:relative;overflow:hidden;padding:38px 38px 34px;
  background:radial-gradient(circle at top right,rgba(255,232,170,.20),transparent 18%),
  radial-gradient(circle at bottom left,rgba(255,217,130,.12),transparent 16%),
  linear-gradient(180deg,var(--paper),var(--paper-soft))
}
.invite-card::before{
  content:"";position:absolute;inset:14px;border-radius:28px;border:1px solid rgba(214,172,93,.18);
  box-shadow:inset 0 0 28px rgba(255,227,163,.08);pointer-events:none
}
.top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.dove{font-size:48px;filter:drop-shadow(0 8px 14px rgba(97,64,12,.10));animation:floatDove 5s ease-in-out infinite}
.cross-light{
  width:26px;height:26px;background:radial-gradient(circle,#fff8d1 0%,#ffd567 50%,rgba(255,213,103,0) 72%);
  clip-path:polygon(47% 0,53% 0,53% 40%,100% 40%,100% 60%,53% 60%,53% 100%,47% 100%,47% 60%,0 60%,0 40%,47% 40%);
  box-shadow:0 0 24px rgba(255,211,93,.54);animation:pulse 2.5s ease-in-out infinite
}
.hero{text-align:center;margin-bottom:18px}
.kicker{margin:0 0 6px;font-size:22px;font-style:italic;color:var(--gold-5)}
.hero h1{margin:0;font-size:clamp(52px,8vw,84px);line-height:.92;color:#a56a1c;text-shadow:0 1px 0 #fff7de}
.of{margin:8px 0 0;font-size:24px;font-style:italic;color:var(--gold-5)}
.content-grid{display:grid;grid-template-columns:1fr .78fr;gap:18px 24px;align-items:center}
.left-side{padding-left:6px}
.name-block{margin:0 0 18px}
.name-main{font-size:clamp(74px,8vw,100px);line-height:.88;color:#a76c1c;font-style:italic}
.name-sub{font-size:clamp(34px,4vw,50px);line-height:.94;letter-spacing:2px;color:#8f5d18}
.name-sub.large{font-size:clamp(46px,5vw,62px)}
.line{width:160px;height:2px;margin:0 0 18px;background:linear-gradient(90deg,rgba(215,172,88,0),rgba(215,172,88,.85),rgba(215,172,88,0))}
.info-list{display:grid;gap:14px;margin-bottom:22px}
.info-item{display:flex;gap:12px;align-items:flex-start;font-size:clamp(22px,2.5vw,28px);color:#83561f}
.info-item .emoji{min-width:32px;text-align:center}
.info-item strong{color:#8f5d18}
.info-item div{line-height:1.25}
.confirm-deadline{
  display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 18px;border-radius:999px;
  background:rgba(255,250,241,.98);border:2px solid rgba(201,155,76,.18);box-shadow:0 8px 18px rgba(105,73,18,.05);
  font-size:clamp(18px,2vw,22px)
}
.confirm-deadline strong{
  display:inline-block;padding:8px 16px;border-radius:999px;background:linear-gradient(180deg,var(--gold-3),var(--gold-4));color:#fff9ef
}
.right-side{display:flex;justify-content:center}
.photo-outer{
  padding:8px;border-radius:220px 220px 28px 28px;background:linear-gradient(180deg,rgba(255,241,201,.90),rgba(231,188,97,.82));
  box-shadow:0 10px 24px rgba(111,72,14,.06)
}
.photo-frame{
  position:relative;width:100%;max-width:235px;padding:10px;border-radius:210px 210px 22px 22px;
  background:linear-gradient(180deg,#f8e3ac 0%,#cf9337 48%,#f9ebc7 100%);box-shadow:0 16px 36px rgba(114,75,16,.12)
}
.photo-frame::before{
  content:"";position:absolute;inset:7px;border-radius:200px 200px 16px 16px;border:2px solid rgba(255,248,222,.72)
}
.photo-glow{
  position:absolute;inset:14px;border-radius:196px 196px 14px 14px;
  background:radial-gradient(circle at 50% 18%,rgba(255,237,168,.78),rgba(255,219,131,.18) 32%,rgba(255,255,255,0) 58%);
  animation:glow 4s ease-in-out infinite
}
.photo-frame img{
  position:relative;display:block;width:100%;aspect-ratio:3/4.5;object-fit:cover;object-position:center top;border-radius:196px 196px 14px 14px
}
.rsvp-highlight{text-align:center;margin-top:28px}
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;min-width:min(100%,520px);padding:22px 24px;border-radius:999px;
  text-decoration:none;font-size:clamp(22px,3vw,30px);font-weight:700;letter-spacing:.4px;color:#fffaf2;
  background:linear-gradient(180deg,#e2b558 0%,#b97d22 100%);border:2px solid rgba(255,233,178,.30);
  box-shadow:0 18px 30px rgba(120,80,16,.15), inset 0 1px 0 rgba(255,255,255,.35);transition:transform .2s ease,filter .2s ease
}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.03)}
.rsvp-highlight p{margin:10px 0 0;font-size:16px;color:#8d601f}
.actions{margin-top:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.btn-secondary{
  border:0;text-decoration:none;border-radius:999px;padding:18px 18px;font-size:22px;font-weight:700;text-align:center;cursor:pointer;
  transition:transform .2s ease,filter .2s ease;box-shadow:0 10px 20px var(--shadow);
  background:rgba(255,250,241,.98);color:#8c591d;border:2px solid rgba(197,151,69,.16)
}
.btn-secondary.gold{background:linear-gradient(180deg,#e2b558 0%,#b97d22 100%);color:#fff9ef;border-color:rgba(255,234,181,.26)}
.btn-secondary:hover{transform:translateY(-2px);filter:brightness(1.02)}
.footer-text{margin:24px 0 0;text-align:center;font-size:clamp(24px,3vw,34px);font-style:italic;color:#a0661b}
.floating-rsvp{
  position:fixed;right:18px;bottom:18px;z-index:50;text-decoration:none;border-radius:999px;padding:16px 18px;
  background:linear-gradient(180deg,#e2b558 0%,#b97d22 100%);color:#fffaf2;font-weight:700;font-size:18px;
  box-shadow:0 12px 24px rgba(119,78,15,.22);border:2px solid rgba(255,233,178,.24)
}
@keyframes twinkle{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes floatDove{0%,100%{transform:translate(0,0) rotate(-4deg)}25%{transform:translate(12px,-8px) rotate(2deg)}50%{transform:translate(18px,-2px) rotate(-1deg)}75%{transform:translate(8px,4px) rotate(3deg)}}
@keyframes glow{0%,100%{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.84}50%{transform:scale(1.16);opacity:1}}
@media (max-width:900px){
  .invite-card{padding:34px 22px 28px}.content-grid{grid-template-columns:1fr;gap:20px}.left-side{order:2;padding-left:0}.right-side{order:1}
  .name-block,.info-list,.confirm-deadline,.line{text-align:center;margin-left:auto;margin-right:auto}.info-item{justify-content:center;text-align:center}
  .actions{grid-template-columns:1fr}.browser-url{font-size:15px}.hero h1{font-size:clamp(42px,12vw,64px)}.photo-frame{max-width:220px}
}
@media (max-width:520px){
  .page{padding:12px}.browser-bar{padding:14px 12px;gap:10px}.browser-url{min-height:38px;font-size:13px}.invite-card{padding:28px 14px 22px}
  .dove{font-size:42px}.name-main{font-size:62px}.name-sub{font-size:27px}.name-sub.large{font-size:39px}.info-item{font-size:20px}
  .btn-primary,.btn-secondary{font-size:20px;padding:16px 14px}.footer-text{font-size:28px}.photo-frame{max-width:190px}
  .floating-rsvp{right:12px;bottom:12px;font-size:16px;padding:14px 16px}
}
