/* Branded gift registry storefront. */
.registry-page {
  --registry-pad: clamp(1.25rem, 5.5vw, 5.5rem);
  --registry-max: 93rem;
  --registry-card: #fffaf1;
}

.registry-page [hidden] { display: none !important; }
.registry-page a:focus-visible,
.registry-page summary:focus-visible,
.registry-page button:focus-visible,
.registry-page input:focus-visible { outline: 2px solid var(--wine); outline-offset: 5px; }
.registry-page .registry-cover a:focus-visible,
.registry-page .venmo-spotlight a:focus-visible,
.registry-page .registry-footer a:focus-visible { outline-color: var(--candle); }
.registry-page [id] { scroll-margin-top: 1.5rem; }
.registry-page .page-shell { background: var(--paper); }
.registry-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.registry-skip { position: fixed; top: 0.75rem; left: 0.75rem; z-index: 3000; padding: 0.75rem 1rem; background: var(--ivory); transform: translateY(-180%); }
.registry-skip:focus { transform: none; }

.registry-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.05rem var(--registry-pad); border-bottom: 1px solid var(--line); background: var(--paper); }
.registry-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem 1.7rem; font-size: 0.85rem; }
.registry-nav a { display: inline-flex; align-items: center; min-height: 44px; gap: 0.35rem; }
.registry-nav a:last-child { border-bottom: 1px solid var(--wine); color: var(--wine); }

.registry-page .eyebrow { font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; }
.registry-page h1,
.registry-page h2,
.registry-page h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; }

.registry-cover { position: relative; display: grid; place-items: center; min-height: clamp(30rem, 56vw, 43rem); overflow: hidden; background: var(--night); color: var(--ivory); isolation: isolate; }
.registry-cover-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 47%; }
.registry-cover-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(7,20,13,0.72), rgba(62,17,29,0.24) 50%, rgba(7,20,13,0.68)), linear-gradient(180deg, rgba(7,20,13,0.1), rgba(7,20,13,0.66)); }
.registry-cover-copy { max-width: 55rem; padding: 3rem var(--registry-pad) 5rem; text-align: center; text-shadow: 0 2px 22px rgba(7,20,13,0.55); }
.registry-cover-copy .eyebrow { margin: 1.15rem 0 0.45rem; color: var(--candle); }
.registry-cover-seal { display: inline-flex; align-items: center; justify-content: center; width: 5.5rem; height: 5.5rem; margin: 0 auto; border: 1px solid rgba(255,248,237,0.76); border-radius: 50%; color: var(--ivory); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.55rem; letter-spacing: 0; line-height: 1; }
.registry-cover-seal > span { display: inline-block; line-height: 1; }
.registry-cover-seal i { display: inline-block; margin: 0 0.06em; color: var(--candle); font-family: var(--script); font-size: 0.88em; font-style: normal; line-height: 1; transform: translateY(0.08em) rotate(-7deg); }
.registry-cover h1 { margin: 0; font-size: clamp(4rem, 8vw, 7.8rem); line-height: 0.88; letter-spacing: -0.045em; }
.registry-cover h1 em { display: block; margin-top: 0.08em; color: var(--candle); font-family: var(--script); font-size: 0.66em; font-weight: 400; }
.registry-cover-date { margin: 1.15rem 0 0; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.05rem; letter-spacing: 0.13em; text-transform: uppercase; }
.registry-cover-journey { margin: 0.65rem 0 0; color: #e5e2d8; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; }
.registry-cover-journey span { margin: 0 0.55rem; color: var(--candle); }

.registry-welcome { position: relative; z-index: 2; max-width: 52rem; margin: 0 auto; padding: 0 var(--registry-pad) clamp(3.75rem, 6vw, 6rem); text-align: center; }
.registry-portrait { width: clamp(7rem, 10vw, 8.75rem); aspect-ratio: 1; margin: clamp(-4.4rem, -5vw, -3.65rem) auto 1.55rem; padding: 0.32rem; border: 1px solid var(--candle); border-radius: 50%; background: var(--ivory); box-shadow: 0 0.8rem 2.2rem rgba(7,20,13,0.18); }
.registry-portrait img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; object-position: 50% 42%; }
.registry-welcome > .eyebrow { margin: 0 0 0.65rem; color: var(--wine); }
.registry-welcome h2 { max-width: 42rem; margin: auto; font-size: clamp(2.8rem, 5vw, 4.8rem); line-height: 0.95; letter-spacing: -0.035em; }
.registry-welcome h2 em { display: inline-block; color: var(--wine); font-weight: 400; }
.registry-welcome > p:not(.eyebrow) { max-width: 40rem; margin: 1.35rem auto 0; color: var(--muted); font-size: 1rem; }
.venmo-spotlight { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem clamp(2rem, 7vw, 7rem); max-width: var(--registry-max); margin: 0 auto clamp(3.5rem, 6vw, 6rem); padding: clamp(1.5rem, 4vw, 3rem) var(--registry-pad); background: var(--night); color: var(--ivory); }
.venmo-spotlight-copy { min-width: 0; }
.venmo-spotlight .eyebrow { margin: 0 0 0.45rem; color: var(--candle); }
.venmo-spotlight h2 { margin: 0; color: var(--ivory); font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: 0.95; letter-spacing: -0.035em; }
.venmo-profile { margin: 0.75rem 0 0; color: #d8ddd3; font-size: 0.9rem; overflow-wrap: anywhere; }
.venmo-primary { width: min(100%, 15rem); margin-top: 1.15rem; gap: 0.6rem; text-align: center; }
.venmo-spotlight .venmo-note { max-width: 28rem; margin: 0.75rem 0 0; color: #adb7aa; font-size: 0.7rem; line-height: 1.45; }
.venmo-qr { display: grid; justify-items: center; gap: 0.55rem; color: #d8ddd3; font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; }
.venmo-qr img { display: block; width: clamp(8.5rem, 16vw, 11rem); height: auto; padding: 0.45rem; border: 1px solid rgba(202,185,132,0.42); background: #fff; }
.registry-gifts { max-width: var(--registry-max); margin: auto; padding: 0 var(--registry-pad) clamp(3.5rem, 6vw, 6rem); }
.registry-section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem 3rem; border-top: 1px solid var(--line); padding-top: 1.5rem; margin-bottom: 2rem; }
.registry-section-heading h2 { max-width: 42rem; margin: 0; font-size: clamp(2.8rem, 4.6vw, 4.8rem); line-height: 0.93; letter-spacing: -0.035em; }
.registry-section-heading h2 em { display: block; color: var(--wine); font-weight: 400; }
.registry-section-heading > p { max-width: 22rem; margin: 0; color: var(--muted); font-size: 0.9rem; }
.registry-shop-shell { min-width: 0; }
.registry-grid { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: clamp(1rem, 1.8vw, 1.6rem); }
.registry-gift { position: relative; min-width: 0; display: flex; flex-direction: column; align-self: start; border: 1px solid var(--line); background: var(--registry-card); overflow: hidden; transition: border-color 180ms ease; }
.registry-gift:hover { border-color: rgba(62,17,29,0.32); }
.gift-art { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 0.82; min-height: 0; padding: clamp(1rem, 2vw, 1.4rem); overflow: hidden; }
.gift-art-product { background: #e8e3d8; }
.gift-art-photo { padding: 0; background: var(--night); }
.gift-story-image { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.gift-badge { position: absolute; top: 0.85rem; left: 0.85rem; padding: 0.5rem 0.65rem; background: var(--night); color: var(--candle); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.gift-art-switch { isolation: isolate; background: #14251a url("/assets/registry/switch-game-night-scene-v1.jpg") center / cover no-repeat; }
.gift-art-switch::before { position: absolute; z-index: 0; left: 17%; right: 17%; bottom: 20%; height: 7%; border-radius: 50%; background: rgba(7,20,13,0.25); filter: blur(15px); content: ""; }
.gift-art-switch .gift-product-image { position: relative; z-index: 1; width: min(90%, 33rem); height: auto; max-height: 82%; border: 0; background: transparent; box-shadow: none; object-fit: contain; filter: drop-shadow(0 0.8rem 0.75rem rgba(7,20,13,0.3)); transform: rotate(-0.8deg); }
.gift-art-gift-card { isolation: isolate; padding: clamp(1.35rem, 3vw, 2.5rem); background-position: center; background-size: cover; }
.gift-art-gift-card::after { position: absolute; z-index: 0; inset: 0; content: ""; background: linear-gradient(135deg, rgba(255,248,237,0.02), rgba(7,20,13,0.12)); box-shadow: inset 0 0 0 1px rgba(255,248,237,0.16); }
.gift-art-amazon { background-image: url("/assets/registry/gift-card-scene-amazon-v1.jpg"); }
.gift-art-homegoods { background-image: url("/assets/registry/gift-card-scene-homegoods-v1.jpg"); }
.gift-card-frame { position: relative; z-index: 1; display: block; width: min(82%, 23rem); overflow: hidden; border: 0; background: transparent; filter: drop-shadow(0 1rem 1rem rgba(7,20,13,0.28)) drop-shadow(0 0.15rem 0.22rem rgba(7,20,13,0.18)); transition: transform 220ms var(--ease-editorial); }
.gift-card-frame .gift-product-image { position: absolute; inset: 0; display: block; width: 100%; max-width: none; height: 100%; border: 0; background: transparent; box-shadow: none; object-fit: cover; }
.gift-card-frame-amazon { aspect-ratio: 1091 / 679; border-radius: 4.5% / 7%; transform: rotate(2.2deg); }
.gift-card-frame-amazon .gift-product-image { transform: scale(1.055); }
.gift-card-frame-homegoods { aspect-ratio: 890 / 566; border-radius: 4% / 6%; transform: rotate(-1.8deg); }
.registry-gift:hover .gift-card-frame-amazon { transform: rotate(1.4deg) translateY(-2px); }
.registry-gift:hover .gift-card-frame-homegoods { transform: rotate(-1deg) translateY(-2px); }
.gift-art-envelope-photo { padding: 0; background: var(--wine); }
.gift-product-image { display: block; width: 100%; height: 100%; object-fit: contain; border: 1px solid rgba(20,32,25,0.1); background: #fff; box-shadow: 0 0.8rem 1.8rem rgba(7,20,13,0.1); transition: opacity 160ms ease, filter 160ms ease; }
.gift-envelope-image { object-fit: cover; border: 0; box-shadow: none; }
.registry-gift-copy { flex: 1; display: flex; flex-direction: column; align-items: stretch; padding: clamp(1.2rem, 2vw, 1.5rem); }
.gift-type { margin: 0 0 0.65rem; color: var(--wine); font-size: 0.66rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; }
.registry-gift h3 { margin: 0; font-size: clamp(1.85rem, 2.6vw, 2.4rem); line-height: 0.98; }
.registry-gift-copy > p:not(.gift-type) { margin: 0.75rem 0 1.1rem; color: var(--muted); font-size: 0.9rem; line-height: 1.55; }
.registry-gift-copy > p.gift-small-note { margin: -0.35rem 0 0.9rem; padding-left: 0.65rem; border-left: 2px solid var(--candle); font-size: 0.76rem; }
.honeymoon-venmo-link { width: 100%; margin-top: 0.25rem; justify-content: center; gap: 0.55rem; text-align: center; }
.registry-gift-link,
.registry-card-link,
.registry-gift-details { margin-top: auto; color: var(--wine-dark); font-size: 0.8rem; }
.registry-gift-link,
.registry-card-link,
.registry-gift-details summary { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; min-height: 48px; padding: 0.75rem 0.85rem; }
.registry-gift-link,
.registry-card-link,
.registry-gift-details summary { min-height: 54px; padding: 0.45rem 0; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--wine-dark); font-size: 0.78rem; font-weight: 600; text-align: left; transition: color 160ms ease; }
.registry-gift-link > span[aria-hidden="true"],
.registry-card-link > span[aria-hidden="true"],
.registry-gift-details summary > span[aria-hidden="true"],
.venmo-link > span[aria-hidden="true"] { flex: 0 0 auto; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 1px solid rgba(62,17,29,0.38); border-radius: 50%; font-family: Georgia, serif; font-size: 1rem; font-weight: 400; transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease; }

.switch-buying-guide { margin-top: 0.15rem; border-top: 1px solid var(--line); }
.switch-buying-title { margin: 0; padding: 0.8rem 0 0.45rem; color: var(--muted); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.switch-buy-option { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 74px; padding: 0.7rem 0; border-top: 1px solid var(--line); color: var(--wine-dark); }
.switch-buy-option > span:first-child { min-width: 0; display: grid; gap: 0.08rem; }
.switch-buy-option small { color: var(--wine); font-size: 0.6rem; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; }
.switch-buy-option strong { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.18rem; font-weight: 600; line-height: 1.05; }
.switch-buy-option em { color: var(--muted); font-size: 0.7rem; font-style: normal; }
.switch-buy-option > span[aria-hidden="true"] { flex: 0 0 auto; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 1px solid rgba(62,17,29,0.38); border-radius: 50%; font-family: Georgia, serif; font-size: 1rem; transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease; }
.switch-buy-option.is-best-value { margin-top: 0.25rem; padding-left: 0.75rem; border-left: 2px solid var(--candle); }
.switch-game-note { margin: 0.45rem 0 0 !important; color: var(--muted); font-size: 0.7rem !important; line-height: 1.45 !important; }
.switch-store-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.75rem; margin: 0.65rem 0 0 !important; color: var(--muted); font-size: 0.7rem !important; }
.switch-store-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wine-dark); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(62,17,29,0.35); text-underline-offset: 0.2rem; }
.switch-price-note { margin: 0.25rem 0 0 !important; padding-left: 0.65rem; border-left: 2px solid var(--line); color: var(--muted); font-size: 0.65rem !important; line-height: 1.45 !important; }

.gift-claim { margin-top: 0.9rem; padding: 0.9rem; border: 1px solid rgba(100,35,50,0.22); background: rgba(100,35,50,0.055); }
.gift-claim-status { display: flex; align-items: center; gap: 0.7rem; min-height: 48px; margin: 0; padding: 0 0 0.75rem; }
.gift-claim-status > span:last-child { display: flex; flex-direction: column; gap: 0.05rem; }
.gift-claim-status strong { color: var(--wine-dark); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.12rem; font-weight: 600; line-height: 1; }
.gift-claim-status small { color: var(--muted); font-size: 0.69rem; }
.gift-claim-dot { flex: 0 0 auto; width: 0.62rem; height: 0.62rem; border-radius: 50%; background: #9f6b2e; box-shadow: 0 0 0 4px rgba(159,107,46,0.12); }
.gift-claim-status.is-available .gift-claim-dot { background: #4b7453; box-shadow: 0 0 0 4px rgba(75,116,83,0.12); }
.gift-claim-status.is-gifted .gift-claim-dot { background: var(--wine); box-shadow: 0 0 0 4px rgba(100,35,50,0.12); }
.gift-claim-status.is-unavailable .gift-claim-dot { background: #817b72; box-shadow: 0 0 0 4px rgba(129,123,114,0.12); }
.gift-claim-button { position: relative; width: 100%; min-height: 60px; padding: 0.85rem 3.5rem 0.85rem 1rem; border: 1px solid var(--wine-dark); border-radius: 0; background: var(--wine-dark); color: var(--ivory); cursor: pointer; font: inherit; font-size: 0.84rem; font-weight: 700; line-height: 1.3; text-align: left; transition: background 160ms ease, color 160ms ease, opacity 160ms ease; }
.gift-claim-button::after { position: absolute; top: 50%; right: 0.65rem; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 1px solid rgba(255,250,241,0.48); border-radius: 50%; content: "→"; color: var(--ivory); font: 400 1rem/1 Georgia, serif; transform: translateY(-50%); transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease; }
.gift-claim-button:disabled { opacity: 0.52; cursor: not-allowed; }
.gift-claim-button:disabled::after { opacity: 0.7; }
.gifted-card-overlay { position: absolute; z-index: 12; inset: 0; display: none; place-content: center; justify-items: center; gap: clamp(1rem, 3vw, 1.6rem); padding: 2rem; overflow: hidden; background: linear-gradient(155deg, rgba(7,20,13,0.94), rgba(62,17,29,0.94)); color: var(--ivory); text-align: center; }
.gifted-card-x { color: var(--candle); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(13rem, 29vw, 22rem); font-weight: 400; line-height: 0.5; text-shadow: 0 0.12em 0.3em rgba(0,0,0,0.32); }
.gifted-card-overlay strong { padding-top: 0.2rem; color: var(--ivory); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 500; line-height: 1; letter-spacing: -0.02em; }
.registry-gift-unique.is-gifted .gifted-card-overlay { display: grid; }
.registry-gift-unique.is-gifted .gift-product-image { opacity: 0.28; filter: grayscale(0.9); }

.registry-gift-details summary { cursor: pointer; list-style: none; }
.registry-gift-details summary::-webkit-details-marker { display: none; }
.registry-gift-details[open] summary > span { transform: rotate(45deg); }
.registry-gift-details > p { margin-bottom: 0; color: var(--muted); font-size: 0.82rem; }
.cash-gift-option { margin-top: 0.85rem; padding-top: 0.85rem; border-top: 1px solid var(--line); }
.cash-gift-option > p { margin: 0; color: var(--muted); font-size: 0.78rem; }
.cash-gift-option strong { color: var(--wine-dark); font-weight: 600; }
.venmo-link { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; min-height: 54px; margin-top: 0.8rem; padding: 0.45rem 0; border-top: 1px solid rgba(0,140,255,0.32); color: var(--wine-dark); font-size: 0.78rem; font-weight: 600; }
.venmo-link > span[aria-hidden="true"] { border-color: rgba(0,140,255,0.58); color: #0074d4; }
.cash-gift-option > .venmo-note { margin-top: 0.7rem; padding-left: 0.75rem; border-left: 2px solid #008cff; font-size: 0.72rem; }

@media (hover: hover) {
  .gift-claim-button:hover:not(:disabled) { background: #4b1825; }
  .registry-gift-link:hover > span[aria-hidden="true"],
  .registry-card-link:hover > span[aria-hidden="true"],
  .registry-gift-details summary:hover > span[aria-hidden="true"] { border-color: var(--wine-dark); background: var(--wine-dark); color: var(--ivory); transform: translateX(2px); }
  .gift-claim-button:hover:not(:disabled)::after { border-color: var(--candle); background: var(--candle); color: var(--wine-dark); transform: translate(2px, -50%); }
  .switch-buy-option:hover > span[aria-hidden="true"] { border-color: var(--wine-dark); background: var(--wine-dark); color: var(--ivory); transform: translateX(2px); }
  .registry-gift-link:hover > span[aria-hidden="true"],
  .registry-card-link:hover > span[aria-hidden="true"],
  .registry-gift-details summary:hover > span[aria-hidden="true"] { transform: translateX(2px); }
  .registry-gift-details[open] summary:hover > span[aria-hidden="true"] { transform: rotate(45deg); }
  .venmo-link:hover > span[aria-hidden="true"] { border-color: #0074d4; background: #0074d4; color: #fff; transform: translateX(2px); }
}

.registry-delivery-note { display: grid; grid-template-columns: 1fr 3fr; gap: 1rem 2rem; margin-top: 1.75rem; border-bottom: 1px solid var(--line); padding: 1rem 0 1.75rem; }
.registry-delivery-note strong { color: var(--wine-dark); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.5rem; font-weight: 500; line-height: 1.1; }
.registry-delivery-note p { margin: 0; color: var(--muted); font-size: 0.8rem; }
.registry-thanks { padding: 0 var(--registry-pad) 4.5rem; text-align: center; }
.registry-thanks h2 { max-width: 40rem; margin: auto; font-size: clamp(2.5rem, 4vw, 4rem); line-height: 1; }
.registry-thanks h2 em { color: var(--wine); }
.registry-thanks > p:not(.eyebrow) { margin: 1.3rem auto 0; max-width: 30rem; color: var(--muted); font-size: 0.9rem; }
.registry-signature { display: block; margin: 1.3rem 0; color: var(--wine); font-family: var(--script); font-size: 2.4rem; }
.registry-text-link { display: inline-flex; align-items: center; min-height: 44px; gap: 0.8rem; border-bottom: 1px solid currentColor; font-size: 0.8rem; }
.registry-footer { padding-right: var(--registry-pad); padding-left: var(--registry-pad); flex-wrap: wrap; }
.registry-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.8rem; }

.gift-claim-dialog { width: min(calc(100% - 2rem), 31rem); padding: clamp(1.5rem, 5vw, 2.5rem); border: 1px solid var(--line); background: var(--ivory); color: var(--ink); box-shadow: 0 1.5rem 5rem rgba(7,20,13,0.35); }
.gift-claim-dialog::backdrop { background: rgba(7,20,13,0.67); backdrop-filter: blur(3px); }
.gift-claim-dialog .eyebrow { margin: 0 2rem 0.6rem 0; color: var(--wine); }
.gift-claim-dialog h2 { margin: 0; font-size: clamp(2.25rem, 7vw, 3.15rem); line-height: 0.98; letter-spacing: -0.025em; }
.gift-claim-dialog > p:not(.eyebrow) { margin: 1rem 0 1.4rem; color: var(--muted); font-size: 0.95rem; }
.gift-claim-dialog > p strong { color: var(--wine-dark); font-weight: 600; }
.gift-dialog-close { position: absolute; top: 0.8rem; right: 0.8rem; display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; color: var(--wine-dark); cursor: pointer; font: 300 1.8rem/1 Georgia, serif; }
.gift-claim-dialog form { display: grid; gap: 0.6rem; }
.gift-claim-dialog form > label:not(.gift-claim-confirmation) { color: var(--wine-dark); font-size: 0.78rem; font-weight: 600; }
.gift-claim-dialog input[type="text"] { width: 100%; min-height: 48px; padding: 0.7rem 0.8rem; border: 1px solid #bdb4a8; border-radius: 0; background: #fffdf8; color: var(--ink); font: inherit; }
.gift-claim-confirmation { display: flex; align-items: flex-start; gap: 0.7rem; margin-top: 0.35rem; color: var(--ink); font-size: 0.88rem; line-height: 1.4; cursor: pointer; }
.gift-claim-confirmation input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: 0.08rem; accent-color: var(--wine); }
.gift-claim-privacy { margin: 0.35rem 0 0; color: var(--muted); font-size: 0.74rem; line-height: 1.5; }
.gift-claim-error { margin: 0.25rem 0 0; padding: 0.65rem 0.75rem; border-left: 3px solid var(--wine); background: rgba(100,35,50,0.07); color: var(--wine-dark); font-size: 0.78rem; }
.gift-claim-submit { width: 100%; margin-top: 0.45rem; border: 1px solid var(--wine-dark); cursor: pointer; }
.gift-claim-submit:disabled { opacity: 0.58; cursor: wait; }
.gift-claim-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

@media (min-width: 901px) {
  #honeymoon { grid-column: 1; grid-row: 1; }
  #nintendo-switch-2-card { grid-column: 2; grid-row: 1 / span 2; }
  #gift-cards { grid-column: 3; grid-row: 1; }
  #homegoods-card { grid-column: 1; grid-row: 2; }
  #red-envelopes { grid-column: 3; grid-row: 2; }
}

@media (max-width: 900px) {
  .registry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 561px) and (max-width: 900px) {
  #honeymoon { grid-column: 1; grid-row: 1; }
  #nintendo-switch-2-card { grid-column: 2; grid-row: 1 / span 2; }
  #gift-cards { grid-column: 1; grid-row: 2; }
  #homegoods-card { grid-column: 1; grid-row: 3; }
  #red-envelopes { grid-column: 2; grid-row: 3; }
}

@media (max-width: 700px) {
  .registry-header { flex-wrap: nowrap; gap: 0.65rem; padding-block: 0.75rem; }
  .registry-header .brand-wordmark small { font-size: 0.65rem; }
  .registry-header .brand-seal { width: 3rem; height: 3rem; }
  .registry-header .brand-letter-e { top: 0.68rem; left: 0.59rem; }
  .registry-header .brand-letter-g { right: 0.53rem; bottom: 0.62rem; }
  .registry-header .brand-wordmark span { font-size: 1.15rem; }
  .registry-nav { width: auto; margin-left: auto; }
  .registry-nav a:last-child { display: none; }
  .registry-nav a:first-child span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .registry-nav a:first-child { justify-content: center; width: 44px; border: 1px solid var(--line); border-radius: 50%; font-size: 1.1rem; }
  .registry-cover { min-height: 25rem; }
  .registry-cover-copy { padding-bottom: 4.2rem; }
  .registry-cover-seal { width: 4.6rem; height: 4.6rem; }
  .registry-cover h1 { font-size: clamp(3.65rem, 15vw, 5.2rem); }
  .registry-cover-journey { font-size: 0.64rem; }
  .registry-cover-copy,
  .registry-welcome,
  .registry-gifts,
  .registry-thanks { min-width: 0; }
  .registry-welcome { padding-bottom: 3.75rem; }
  .venmo-spotlight { grid-template-columns: 1fr; justify-items: stretch; }
  .venmo-qr { justify-self: start; }
  .registry-portrait { width: 7rem; margin-top: -3.5rem; }
  .registry-section-heading { flex-direction: column; align-items: flex-start; }
  .registry-section-heading > p { max-width: 28rem; }
  .registry-delivery-note { grid-template-columns: 1fr; gap: 0.8rem; }
}

@media (max-width: 560px) {
  .registry-page { --registry-pad: clamp(1rem, 5vw, 1.25rem); }
  .registry-cover { min-height: 23rem; }
  .registry-cover-copy { width: 100%; padding-inline: var(--registry-pad); }
  .registry-cover h1 { max-width: 100%; font-size: clamp(3.25rem, 14vw, 4.2rem); line-height: 0.92; overflow-wrap: anywhere; }
  .registry-cover-date { font-size: 0.85rem; }
  .registry-cover-journey { max-width: 100%; font-size: 0.59rem; letter-spacing: 0.06em; overflow-wrap: anywhere; }
  .registry-welcome h2 em { display: block; }
  .venmo-spotlight { margin-bottom: 3.5rem; padding-block: 1.5rem; }
  .venmo-primary { width: 100%; }
  .venmo-qr img { width: 9rem; }
  .registry-grid { grid-template-columns: 1fr; gap: 1.2rem; }
  .registry-grid,
  .registry-gift,
  .registry-gift-copy,
  .registry-gift-link,
  .registry-card-link,
  .registry-gift-details,
  .switch-buying-guide,
  .switch-buy-option,
  .gift-claim { width: 100%; min-width: 0; max-width: 100%; }
  .registry-gift-copy { padding: 1.15rem; }
  .registry-gift-link,
  .registry-card-link,
  .registry-gift-details summary,
  .gift-claim-button,
  .switch-buy-option,
  .venmo-link { overflow-wrap: anywhere; }
  .gift-art { aspect-ratio: 1 / 0.74; }
  .gift-art-switch { aspect-ratio: 4 / 3; padding: 1rem; }
  .gift-art-switch .gift-product-image { width: min(91%, 28rem); max-height: 76%; }
  .registry-footer { flex-direction: column; align-items: center; text-align: center; gap: 0.3rem; }
}

@media (max-width: 380px) {
  .registry-cover h1 em { display: block; margin: 0.08em 0; line-height: 0.55; }
  .registry-section-heading h2 { font-size: 2.55rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .registry-page *,
  .registry-page *::before,
  .registry-page *::after { transition: none !important; }
}
