:root { --paper:#faf5ef; --white:#fffdf9; --ink:#3b2933; --muted:#706268; --plum:#532e43; --plum-hover:#3d2031; --apricot:#f0c7ac; --line:#e5d9ce; --wash:#f2e9df; --rose:#f3e5e4; --sage:#e9ede4; --sage-ink:#4a6150; --gold:#a87757; }
* { box-sizing:border-box; }
html { scroll-padding-top:24px; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.8 Arial,Helvetica,sans-serif; }
[hidden] { display:none !important; }
a { color:var(--plum); text-underline-offset:5px; }
a:hover { color:var(--plum-hover); text-decoration-thickness:2px; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--plum); outline-offset:5px; }
.skip-link { position:absolute; top:-100px; left:16px; padding:12px; background:var(--white); z-index:5; }
.skip-link:focus { top:12px; }
.shell { max-width:1220px; margin:auto; padding-left:40px; padding-right:40px; }
.site-header { border-bottom:1px solid var(--line); }
.header-inner { min-height:104px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.wordmark { display:flex; align-items:center; gap:11px; color:var(--plum); font:normal 29px/1 Georgia,'Times New Roman',serif; letter-spacing:-1px; text-decoration:none; white-space:nowrap; }
.wordmark svg { width:30px; height:30px; }
.domain { color:var(--muted); font-size:20px; }
.header-inner nav { display:flex; gap:24px; }
.header-inner nav a { font-size:13px; white-space:nowrap; text-decoration:none; }
.header-inner nav a:hover { text-decoration:underline; }
.header-status { color:var(--muted); font-size:11px; border:1px solid var(--line); border-radius:20px; padding:4px 11px; white-space:nowrap; }
h1,h2,h3 { margin:0; font-family:Georgia,'Times New Roman',serif; font-weight:normal; line-height:1.15; letter-spacing:-0.035em; }
h1 { font-size:clamp(44px,4.9vw,63px); margin-bottom:26px; overflow-wrap:anywhere; }
h1 > span { color:var(--gold); }
h2 { font-size:clamp(29px,3.2vw,39px); }
h3 { font-size:26px; }
p { margin:0 0 20px; }
.hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr); gap:36px; align-items:center; padding-top:62px; padding-bottom:56px; }
.eyebrow { font-size:11px; font-weight:bold; letter-spacing:0.09em; text-transform:uppercase; color:var(--muted); margin-bottom:20px; }
.hero-intro { font-size:19px; max-width:540px; }
.hero-description { font-size:16px; color:var(--muted); max-width:520px; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px 26px; margin-top:30px; }
.button { display:inline-flex; gap:26px; align-items:center; background:var(--plum); color:var(--white); padding:12px 20px; border-radius:4px; font-size:14px; font-weight:bold; text-decoration:none; }
.button:hover { color:var(--white); background:var(--plum-hover); }
.text-link { font-size:14px; }
.hero-note { color:var(--muted); font-size:12px; margin:18px 0 0; }
.hero-art { min-width:0; margin:0; }
.hero-art img { display:block; width:100%; height:auto; }
.hero-art figcaption { color:var(--muted); font:italic 16px/1.5 Georgia,'Times New Roman',serif; text-align:center; margin-top:6px; }
.building-note { display:flex; gap:18px; align-items:flex-start; padding:20px 26px; border:1px solid var(--line); background:var(--white); border-radius:5px; }
.note-mark { color:var(--gold); font-size:25px; line-height:1.3; }
.building-note p { color:var(--muted); font-size:13px; margin:0; }
.building-note strong { color:var(--ink); }
.section { padding-top:76px; padding-bottom:76px; }
.section-heading { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr); gap:64px; align-items:end; margin-bottom:34px; }
.section-heading h2 { max-width:560px; }
.section-heading > p { color:var(--muted); max-width:460px; font-size:15px; margin:0; }
.ways-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.way { background:var(--wash); padding:32px; border-radius:6px; display:flex; flex-direction:column; align-items:flex-start; }
.digital-way { background:var(--rose); }
.way-label { color:var(--muted); font-size:12px; margin-bottom:16px; }
.way h3 { font-size:32px; margin-bottom:18px; }
.way p { font-size:15px; }
.way ul { margin:0 0 24px; padding-left:18px; font-size:14px; color:var(--muted); }
.way li { padding-left:3px; margin-bottom:8px; }
.way .text-link { margin-top:auto; }
.ideas-section { background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.filter-bar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; margin-bottom:28px; }
.filters { display:flex; flex-wrap:wrap; gap:8px; }
.filters button { appearance:none; font:13px/1.5 Arial,Helvetica,sans-serif; background:var(--white); border:1px solid var(--line); color:var(--plum); border-radius:24px; padding:9px 16px; cursor:pointer; }
.filters button:hover { border-color:var(--plum); }
.filters button[aria-pressed=true] { background:var(--plum); border-color:var(--plum); color:var(--white); }
.filter-count { margin:0; color:var(--muted); font-size:12px; }
.gift-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.gift-card { border:1px solid var(--line); border-radius:6px; padding:24px; background:var(--paper); display:flex; flex-direction:column; }
.gift-type { color:var(--plum); font-size:10px; font-weight:bold; letter-spacing:0.035em; margin-bottom:18px; }
.gift-card[data-delivery=physical] .gift-type { color:var(--sage-ink); }
.gift-card h3 { font-size:25px; margin-bottom:16px; }
.gift-card p { font-size:14px; color:var(--muted); line-height:1.75; }
.gift-card .gift-check { border-top:1px solid var(--line); padding-top:16px; margin-top:auto; margin-bottom:0; font-size:12px; }
.gift-check strong { color:var(--ink); font-weight:normal; }
.no-script-note { font-size:13px; color:var(--muted); }
.how-section { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:90px; align-items:start; }
.how-section h2 { max-width:450px; }
.section-intro { color:var(--muted); margin-top:24px; font-size:15px; max-width:430px; }
.steps { list-style:none; padding:0; margin:0; counter-reset:steps; }
.steps li { counter-increment:steps; position:relative; padding:0 0 26px 52px; border-bottom:1px solid var(--line); margin-bottom:26px; }
.steps li:last-child { padding-bottom:0; border-bottom:0; margin-bottom:0; }
.steps li::before { content:counter(steps); position:absolute; left:0; top:0; width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font:16px/1 Georgia,'Times New Roman',serif; color:var(--plum); }
.steps h3 { font-size:25px; margin-bottom:14px; }
.steps p { font-size:14px; color:var(--muted); margin:0; }
.greeting-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-top:42px; padding-bottom:42px; }
.greeting-intro h2 { font-size:33px; max-width:430px; }
.greeting-intro > p:last-child { color:var(--muted); font-size:14px; margin-top:20px; margin-bottom:0; }
.greetings { display:grid; gap:24px; }
blockquote { margin:0; padding-left:24px; border-left:2px solid var(--apricot); font:italic 20px/1.65 Georgia,'Times New Roman',serif; }
.faq-section { display:grid; grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr); gap:80px; }
.faq-section h2 { max-width:360px; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); }
summary { cursor:pointer; padding:20px 30px 20px 0; font-size:15px; line-height:1.6; list-style:none; position:relative; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; position:absolute; right:2px; top:18px; font-size:22px; color:var(--plum); }
details[open] summary::after { content:'−'; }
details[open] summary { color:var(--plum); }
details p { margin:0; padding:0 24px 22px 0; font-size:14px; color:var(--muted); }
.closing-section { background:var(--plum); color:var(--white); }
.closing-inner { padding-top:56px; padding-bottom:56px; display:flex; justify-content:space-between; align-items:center; gap:48px; }
.closing-inner .eyebrow { color:var(--apricot); }
.closing-inner h2 { font-size:42px; }
.closing-inner p:last-child { max-width:580px; font-size:14px; margin-top:22px; margin-bottom:0; color:var(--paper); }
.button-light { background:var(--paper); color:var(--plum); white-space:nowrap; }
.button-light:hover { background:var(--apricot); color:var(--plum-hover); }
.closing-inner a:focus-visible { outline-color:var(--apricot); }
.footer-inner { padding-top:36px; padding-bottom:36px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.footer-brand { color:var(--plum); font:normal 24px/1.2 Georgia,'Times New Roman',serif; letter-spacing:-0.8px; text-decoration:none; }
.footer-inner p { color:var(--muted); font-size:12px; margin:8px 0 0; }
.footer-inner nav { display:flex; gap:24px; }
.footer-inner nav a { font-size:12px; white-space:nowrap; }
.footer-status { font-size:11px; color:var(--muted); }
.error-page { padding-top:72px; padding-bottom:72px; }
.error-page .footer-brand { display:inline-block; margin-bottom:52px; }
.error-page h1 { max-width:650px; }
.error-page p { max-width:600px; color:var(--muted); }
@media (max-width:1050px) {
  .header-status { display:none; }
  .gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .how-section,.faq-section { gap:48px; }
  .footer-status { display:none; }
}
@media (max-width:800px) {
  .shell { padding-left:28px; padding-right:28px; }
  .header-inner { flex-wrap:wrap; justify-content:flex-start; gap:20px 40px; padding-top:22px; padding-bottom:22px; }
  .hero { gap:24px; padding-top:44px; }
  h1 { font-size:46px; }
  .hero-intro { font-size:17px; }
  .hero-actions { gap:18px; }
  .section-heading { gap:32px; }
  .section { padding-top:56px; padding-bottom:56px; }
  .way { padding:26px; }
  .how-section,.greeting-section,.faq-section { gap:36px; }
  .closing-inner { align-items:flex-start; flex-direction:column; gap:30px; }
  .footer-inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width:640px) {
  .shell { padding-left:22px; padding-right:22px; }
  .header-inner { gap:22px; }
  .wordmark { font-size:28px; }
  .header-inner nav { gap:20px; flex-wrap:wrap; }
  .header-inner nav a { font-size:12px; }
  .hero { grid-template-columns:minmax(0,1fr); padding-top:36px; padding-bottom:32px; gap:24px; }
  h1 { font-size:46px; }
  .hero-art { max-width:380px; width:100%; margin:auto; }
  .hero-art figcaption { font-size:14px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .building-note { padding:20px; gap:14px; }
  .section { padding-top:44px; padding-bottom:44px; }
  .section-heading,.ways-grid,.how-section,.greeting-section,.faq-section { grid-template-columns:minmax(0,1fr); gap:28px; }
  .section-heading { margin-bottom:28px; }
  h2 { font-size:32px; }
  .way h3 { font-size:30px; }
  .gift-grid { gap:16px; }
  .gift-card { padding:20px; }
  .gift-card h3 { font-size:24px; }
  .filters { gap:8px; }
  .filters button { font-size:12px; padding:9px 13px; }
  .how-section { gap:32px; }
  .section-intro { margin-bottom:0; }
  .greeting-section { padding-top:32px; padding-bottom:32px; }
  .greeting-intro h2 { font-size:31px; }
  blockquote { font-size:19px; padding-left:18px; }
  .closing-inner { padding-top:40px; padding-bottom:40px; }
  .closing-inner h2 { font-size:37px; }
  .footer-inner nav { flex-wrap:wrap; gap:16px 24px; }
}
@media (max-width:440px) {
  .gift-grid { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:360px) {
  .shell { padding-left:20px; padding-right:20px; }
  .wordmark { font-size:26px; }
  .wordmark svg { width:27px; height:27px; }
  h1 { font-size:40px; }
  .header-inner nav { gap:15px; }
}
