:root{
  /* Palette */
  --paper: #F9FAF5;
  --paper-2: #ECEFE8;
  --sage-200: #DDE1D3;
  --sage-300: #C7CDB6;
  --sage-500: #84917F;
  --ink: #7F8A7D;
  --ink-strong: #616D55;

  --radius: 18px;
  --shadow: 0 12px 30px rgba(40, 50, 35, .08);

  --serif: "Cormorant Garamond", ui-serif, "Times New Roman", Times, serif;

  /* Responsive spacing */
  --outer-pad: clamp(14px, 3.2vmin, 34px);
  --inner-pad: clamp(18px, 4.2vmin, 56px);
  --gap: clamp(8px, 1.8vmin, 18px);
}

*{ box-sizing: border-box; }
html, body{ height: 100%; }
body{
  margin: 0;
  font-family: var(--serif);
  color: var(--ink);
  background: var(--paper);
  overflow: hidden; /* full-screen: no scroll */
}

/* Paper + watercolor + sprinkles */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(1200px 900px at 30% 40%, rgba(171,180,151,.16), transparent 60%),
    radial-gradient(900px 700px at 70% 55%, rgba(132,145,127,.12), transparent 62%),
    radial-gradient(550px 400px at 60% 25%, rgba(199,205,182,.14), transparent 62%),
    radial-gradient(2px 2px at 74% 10%, rgba(132,145,127,.20) 40%, transparent 45%),
    radial-gradient(2px 2px at 78% 12%, rgba(132,145,127,.20) 40%, transparent 45%),
    radial-gradient(2px 2px at 82% 14%, rgba(132,145,127,.20) 40%, transparent 45%);
  filter: blur(.2px);
  opacity: .95;
}

/* Full-screen page container */
.page{
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding:
    calc(var(--outer-pad) + env(safe-area-inset-top))
    calc(var(--outer-pad) + env(safe-area-inset-right))
    calc(var(--outer-pad) + env(safe-area-inset-bottom))
    calc(var(--outer-pad) + env(safe-area-inset-left));
}

/* Card */
.card{
  position: relative;
  border-radius: var(--radius);
  background: rgba(255,255,255,.55);
  box-shadow: var(--shadow);
  overflow: hidden;
  isolation: isolate;

  width: min(980px, 94vw);
  height: min(1200px, calc(100svh - (2 * var(--outer-pad))));
}

/* Botanical corners (from v1) */
.card::before,
.card::after{
  content:"";
  position: absolute;
  inset: -18px;
  pointer-events: none;
  background-repeat: no-repeat;
  opacity: .42;
  z-index: 0;
}

.card::before{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='760' height='760' viewBox='0 0 760 760'%3E%3Cg fill='none' stroke='%2384917F' stroke-opacity='.9' stroke-width='10'%3E%3Cpath d='M70 220c80-70 150-90 230-90'/%3E%3Cpath d='M110 260c95-85 200-110 300-110'/%3E%3Cpath d='M140 320c110-95 250-130 370-130'/%3E%3C/g%3E%3Cg fill='%23ABB497' fill-opacity='.38'%3E%3Cellipse cx='120' cy='220' rx='32' ry='14' transform='rotate(-25 120 220)'/%3E%3Cellipse cx='170' cy='195' rx='34' ry='15' transform='rotate(-20 170 195)'/%3E%3Cellipse cx='210' cy='260' rx='34' ry='15' transform='rotate(-35 210 260)'/%3E%3Cellipse cx='260' cy='230' rx='36' ry='16' transform='rotate(-20 260 230)'/%3E%3Cellipse cx='200' cy='315' rx='38' ry='16' transform='rotate(-30 200 315)'/%3E%3Cellipse cx='310' cy='305' rx='38' ry='16' transform='rotate(-15 310 305)'/%3E%3C/g%3E%3C/svg%3E"););
  background-position: left -60px top -40px;
  background-size: 520px 520px;
}

.card::after{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='760' height='760' viewBox='0 0 760 760'%3E%3Cg fill='none' stroke='%2384917F' stroke-opacity='.9' stroke-width='10'%3E%3Cpath d='M690 540c-80 70-150 90-230 90'/%3E%3Cpath d='M650 500c-95 85-200 110-300 110'/%3E%3Cpath d='M620 440c-110 95-250 130-370 130'/%3E%3C/g%3E%3Cg fill='%23ABB497' fill-opacity='.38'%3E%3Cellipse cx='640' cy='540' rx='32' ry='14' transform='rotate(155 640 540)'/%3E%3Cellipse cx='590' cy='565' rx='34' ry='15' transform='rotate(160 590 565)'/%3E%3Cellipse cx='550' cy='500' rx='34' ry='15' transform='rotate(145 550 500)'/%3E%3Cellipse cx='500' cy='530' rx='36' ry='16' transform='rotate(160 500 530)'/%3E%3Cellipse cx='560' cy='445' rx='38' ry='16' transform='rotate(150 560 445)'/%3E%3Cellipse cx='450' cy='455' rx='38' ry='16' transform='rotate(165 450 455)'/%3E%3C/g%3E%3C/svg%3E"););
  background-position: right -60px bottom -50px;
  background-size: 560px 560px;
}

.card__inner{
  position: relative;
  z-index: 1;
  height: 100%;
  padding: var(--inner-pad);
  text-align: center;

  display: grid;
  align-content: center;
  justify-items: center;
  gap: var(--gap);
}

/* Typography */
.kicker{
  margin: 0;
  font-size: clamp(16px, 2.6vmin, 26px);
  font-weight: 400;
  letter-spacing: .2px;
}

.names{
  margin: 0;
  font-size: clamp(38px, 7.6vmin, 86px);
  line-height: .95;
  font-weight: 500;
  color: var(--sage-500);
}

.amp{
  display: inline-block;
  margin: 0 .1em;
  font-weight: 300;
  transform: translateY(.04em);
}

.date{
  margin: 0;
  font-size: clamp(16px, 2.5vmin, 28px);
  font-weight: 400;
}

.date-range{
  margin: 0;
  font-size: clamp(18px, 3.0vmin, 36px);
  font-weight: 400;
  color: var(--sage-500);
}

.title{
  margin: 0;
  font-size: clamp(40px, 7.0vmin, 82px);
  line-height: 1.02;
  font-weight: 500;
  color: var(--sage-500);
}

.place{
  margin: 0;
  font-style: normal;
  font-size: clamp(14px, 2.3vmin, 26px);
  line-height: 1.25;
  color: color-mix(in srgb, var(--ink) 84%, var(--ink-strong));
}

.small{
  margin: 0;
  font-size: clamp(13px, 2.0vmin, 18px);
  line-height: 1.25;
  color: color-mix(in srgb, var(--ink) 92%, transparent);
}

/* CTA text under dog */
.cta{
  margin: 0;
  font-size: clamp(14px, 2.2vmin, 20px);
  line-height: 1.25;
  color: color-mix(in srgb, var(--ink) 92%, var(--ink-strong));
}

.cta strong{
  font-weight: 600;
  color: color-mix(in srgb, var(--ink-strong) 80%, var(--ink));
}

/* Dog CTA */
.dog-link{
  --size: clamp(74px, 10vmin, 120px);
  position: relative;
  display: inline-grid;
  place-items: center;
  width: var(--size);
  height: var(--size);
  border-radius: 999px;
  text-decoration: none;
  outline: none;
}

.dog-link__img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform-origin: 50% 70%;
  filter: drop-shadow(0 10px 14px rgba(40,50,35,.10));
  transition: transform .25s ease, filter .25s ease;
}

.dog-link__hint{
  position: absolute;
  inset: auto 0 -18px 0;
  font-size: 14px;
  letter-spacing: .45px;
  color: color-mix(in srgb, var(--ink) 88%, transparent);
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .2s ease, transform .2s ease;
}

/* Hover/Focus */
.dog-link:hover .dog-link__img,
.dog-link:focus-visible .dog-link__img{
  transform: translateY(-4px) rotate(-2deg) scale(1.03);
  filter: drop-shadow(0 16px 20px rgba(40,50,35,.14));
  animation: wiggle .55s ease-in-out 1;
}

.dog-link:hover .dog-link__hint,
.dog-link:focus-visible .dog-link__hint{
  opacity: 1;
  transform: translateY(0);
}

.dog-link:focus-visible{
  box-shadow: 0 0 0 4px rgba(132,145,127,.22);
}

/* Pool party sunglasses overlay (same dog image as page 1) */
.dog-link--party::after{
  content:"";
  position: absolute;
  width: 56%;
  height: 20%;
  top: 38%;
  left: 22%;
  border-radius: 10px;
  background:
    linear-gradient(#2A2A2A, #1E1E1E) left/44% 100% no-repeat,
    linear-gradient(#2A2A2A, #1E1E1E) right/44% 100% no-repeat,
    linear-gradient(#1E1E1E, #1E1E1E) center/10% 18% no-repeat;
  opacity: .82;
  transform: rotate(-6deg);
  filter: drop-shadow(0 6px 6px rgba(0,0,0,.12));
  transition: transform .25s ease;
}

.dog-link--party:hover::after,
.dog-link--party:focus-visible::after{
  transform: rotate(-10deg) translateY(-2px);
}

@keyframes wiggle{
  0%{ transform: translateY(-4px) rotate(-2deg) scale(1.03); }
  35%{ transform: translateY(-4px) rotate(2deg) scale(1.03); }
  70%{ transform: translateY(-4px) rotate(-1deg) scale(1.03); }
  100%{ transform: translateY(-4px) rotate(0deg) scale(1.03); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .dog-link__img{ transition: none; }
  .dog-link:hover .dog-link__img,
  .dog-link:focus-visible .dog-link__img{ animation: none; }
}

/* Extra-tight height devices: reduce padding/gaps to avoid clipping */
@media (max-height: 640px){
  :root{
    --inner-pad: clamp(14px, 3.2vmin, 34px);
    --gap: clamp(6px, 1.3vmin, 12px);
  }
  .dog-link__hint{ display: none; }
}
