:root{
  --red:#C8372D; --red-d:#A82B22; --pine:#1D3B33; --pine-2:#24493F; --gold:#E9B949;
  --cream:#FFF8EE; --paper:#FFFFFF; --ink:#1E2421; --muted:#5E6762; --line:#E8DFD2;
  --ok:#2F7D5B; --warn:#B7791F; --err:#B42318;
  --radius:16px; --shadow:0 1px 2px rgba(30,36,33,.06),0 8px 24px rgba(30,36,33,.07);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.55 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--red-d)}
img{max-width:100%}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.15;margin:0 0 .5em;color:var(--pine)}
h1{font-size:clamp(1.9rem,4.5vw,3rem)}
h2{font-size:1.4rem}
h3{font-size:1.1rem}
p{margin:0 0 1em}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.narrow{max-width:760px}
.muted{color:var(--muted)}
.small{font-size:.86rem}
.center{text-align:center}
em{font-style:normal;color:var(--muted);font-weight:400}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* top bar */
.topbar{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.topbar-in{display:flex;align-items:center;justify-content:space-between;height:64px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--pine);font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:700}
.brand b{color:var(--red)}
.brand-sm{font-size:1.1rem}
.nav{display:flex;align-items:center;gap:16px}
.nav a{color:var(--ink);text-decoration:none;font-weight:500}
.nav a.btn{color:#fff}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--red);color:#fff;border:0;border-radius:999px;padding:11px 20px;font:600 1rem Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer;transition:background .15s,transform .05s;white-space:nowrap}
.btn:hover{background:var(--red-d)}
.btn:active{transform:translateY(1px)}
.btn-sm{padding:7px 14px;font-size:.9rem}
.btn-big{width:100%;padding:15px 22px;font-size:1.08rem;margin-top:6px}
.btn-ghost{background:transparent;color:var(--pine);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn-ghost:hover{background:#F6EFE4}
.btn-amz{background:var(--pine)}
.btn-amz:hover{background:var(--pine-2)}
.linkbtn{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:.88rem;padding:4px}
.linkbtn.danger{color:var(--err)}
.inline{display:inline}

/* hero */
.hero{padding:40px 0 56px;background:radial-gradient(1200px 400px at 10% -10%,#FBE3D6 0,transparent 60%),radial-gradient(900px 400px at 110% 10%,#E5EFE6 0,transparent 60%)}
.hero-in{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:start}
.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;font-weight:600;color:var(--red);margin-bottom:.5em}
.hl{color:var(--red)}
.lead{font-size:1.15rem;color:#38403C;max-width:34em}
.ticks{list-style:none;padding:0;margin:0 0 1.2em}
.ticks li{padding-left:30px;position:relative;margin:.45em 0}
.ticks li:before{content:"";position:absolute;left:0;top:.3em;width:18px;height:18px;border-radius:50%;background:var(--pine) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.stat-line{color:var(--muted);font-size:.95rem}

/* cards & forms */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:20px}
.card-accent{border-color:#F0C7BF;background:linear-gradient(180deg,#FFF4F0,#fff)}
.form-card h2{margin-bottom:.8em}
.fld{display:block;margin-bottom:14px}
.fld>span{display:block;font-weight:600;font-size:.92rem;margin-bottom:5px}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pine);box-shadow:0 0 0 3px rgba(29,59,51,.12)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{display:flex;align-items:center;gap:8px;font-weight:500;margin:4px 0 14px;cursor:pointer}
.check input{width:20px;height:20px;min-height:0;accent-color:var(--pine)}
.people-head{display:flex;flex-direction:column;margin:8px 0 8px;font-weight:600}
.people-head em{font-size:.85rem}
.person{display:grid;grid-template-columns:1fr 1.2fr 40px;gap:8px;margin-bottom:8px}
.x{border:0;background:#F6EFE4;border-radius:10px;font-size:1.3rem;color:var(--muted);cursor:pointer}
.x:hover{background:#F0E4D4;color:var(--err)}
#addPerson{margin:2px 0 12px}

.flash{border-radius:12px;padding:12px 16px;margin:16px 0;font-weight:500}
.flash-ok{background:#E7F4EC;color:#1E5A40}
.flash-warn{background:#FDF3DF;color:#7A4E0E}
.flash-err{background:#FDECEA;color:#8A1C12}
.form-card .flash{margin-top:0}

/* features */
.band{background:var(--pine);color:#E8F0EC;padding:48px 0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feat h3{color:#fff}
.feat p{color:#C8D7D0;margin:0}
.num{width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--pine);font-weight:700;display:grid;place-items:center;margin-bottom:12px}

.faq{padding:48px 16px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:10px}
.faq summary{font-weight:600;cursor:pointer}
.faq details p{margin:.6em 0 0;color:#38403C}

/* inner pages */
.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:32px 0 16px}
.page-title h1{margin-bottom:.2em}
.status{background:#F6EFE4;border-radius:999px;padding:8px 14px;font-weight:600;color:var(--muted);font-size:.92rem}
.status-done{background:#E7F4EC;color:#1E5A40}
.note{background:#FDF6E7;border:1px solid #F1DFB6;border-radius:12px;padding:12px 16px;margin-bottom:20px}
.card-note{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between}
.stepnum{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--pine);color:#fff;font:700 .95rem Inter,sans-serif;margin-right:6px;vertical-align:3px}

.people-list{margin:14px 0 6px;border-top:1px solid var(--line)}
.pl-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pl-name{font-weight:600}
.pl-meta{font-size:.85rem;color:var(--muted);word-break:break-word}
.pl-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}
.tag{background:var(--gold);color:var(--pine);font-size:.72rem;border-radius:6px;padding:1px 6px;vertical-align:2px}
.ok-dot:before,.no-dot:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:1px}
.ok-dot:before{background:var(--ok)}
.no-dot:before{background:#C9BFB2}
details.edit{position:relative}
details.edit summary{list-style:none}
details.edit summary::-webkit-details-marker{display:none}
details.edit[open]{flex-basis:100%}
.edit-form{display:grid;grid-template-columns:1fr 1.2fr auto;gap:8px;margin-top:8px}
.add-row{display:grid;grid-template-columns:1fr 1.2fr auto;gap:8px;margin-top:14px}
.rules{list-style:none;padding:0;margin:0 0 12px}
.rules li{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#FAF5EE;border-radius:10px;margin-bottom:6px}
.rule-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rule-form select{width:auto;flex:1;min-width:120px}
.rule-form .check{margin:0}
.details-form textarea{resize:vertical}

/* invite + claim */
.invite-box{background:#F4F8F5;border:1px solid #D5E6DB;border-radius:12px;padding:14px 16px;margin:6px 0 10px}
.invite-box p{margin:0 0 10px}
.invite-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.claim-list{display:grid;gap:8px;margin:12px 0}
.claim{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:600 1.05rem Inter,system-ui,sans-serif;color:var(--ink);cursor:pointer;text-align:left}
.claim b{color:var(--red);font-size:.9rem}
.claim:hover{border-color:var(--pine);background:#FAF7F1}
.claim-taken{cursor:default;color:var(--muted);background:#FAF5EE}
.claim-taken em{font-size:.85rem}
.save-link .add-row{margin-top:8px}

/* email code */
.check-top{align-items:flex-start}
.check-top input{margin-top:3px;flex-shrink:0}
.check-top span{font-weight:400}
.verified{color:var(--ok);font-weight:600}
.gate .gate-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
.gate .gate-row input{flex:1;min-width:180px}
.gate-email{margin:0;flex-basis:100%}
.code-row input{font-size:1.4rem;letter-spacing:.3em;text-align:center;max-width:220px}
.code-row input::placeholder{letter-spacing:normal;font-size:1rem}

/* member page */
.reveal-card{text-align:center;padding:32px 24px}
.reveal-cover img{margin-bottom:8px}
.reveal-q{font-family:Fraunces,Georgia,serif;font-size:1.6rem;color:var(--pine);margin-bottom:12px}
.reveal-cover .btn-big{max-width:320px}
.reveal-body{text-align:left}
.reveal-body .eyebrow{text-align:center}
.giftee{text-align:center;font-size:clamp(2.2rem,7vw,3.4rem);color:var(--red);margin-bottom:.7em}
.pop{animation:pop .45s ease-out}
@keyframes pop{0%{opacity:0;transform:scale(.96)}100%{opacity:1;transform:scale(1)}}
.wishes{list-style:none;padding:0;margin:0 0 16px}
.wish{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff}
.wish-title{font-weight:600}
.wish-notes{font-size:.9rem;color:var(--muted)}
.wish-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}
.empty{background:#FAF5EE;border-radius:12px;padding:14px;color:var(--muted)}
.wish-form{border-top:1px dashed var(--line);padding-top:16px;margin-top:8px}
.ideas-mini{margin-top:18px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-block;padding:8px 14px;border-radius:999px;background:#F6EFE4;color:var(--pine);text-decoration:none;font-weight:500;font-size:.92rem;border:1px solid #EADFCD}
.chip:hover{background:#EFE3D1}
.chip-alt{background:#fff}
.idea-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.idea-card{margin:0}
.cta-band{text-align:center;margin:32px 0}
.cta-band .btn-big{max-width:320px}
.prose{padding:32px 16px}
.prose h2{margin-top:1.4em}
.stats{width:100%;border-collapse:collapse}
.stats td{padding:8px 0;border-bottom:1px solid var(--line)}
.stats td:last-child{text-align:right;font-weight:600}

/* SEO content */
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:10px}
.crumbs a{color:var(--muted)}
.prose ol,.prose ul{padding-left:1.3em}
.prose li{margin:.35em 0}
.lead-sm{font-size:1.08rem;color:#38403C}
.related{columns:2;gap:24px;padding-left:1.1em}
.faq-list details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:8px}
.faq-list summary{font-weight:600;cursor:pointer}
.seo-copy{padding:48px 16px 0}
.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:40px}
.link-list{list-style:none;padding:0;margin:0}
.link-list li{padding:8px 0;border-bottom:1px solid var(--line)}
.link-list a{text-decoration:none;font-weight:500}
.hub-chips{margin-bottom:20px}
.guide-card{display:block;text-decoration:none;color:inherit;margin:0}
.guide-card:hover{border-color:var(--pine)}
.guide-card .more{color:var(--red-d);font-weight:600}
.foot-cols{display:flex;gap:40px;flex-wrap:wrap}
.foot-col{display:flex;flex-direction:column;gap:6px}
.foot-col b{color:var(--pine)}
.foot-col a{color:var(--ink);text-decoration:none;font-size:.92rem}
@media (max-width:900px){.two-col{grid-template-columns:1fr;gap:20px}.related{columns:1}}

/* footer */
.footer{background:#F4EBDD;border-top:1px solid var(--line);padding:32px 0 24px;margin-top:40px}
.foot-row{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.foot-row p{max-width:30em;margin-top:8px}
.foot-links{display:flex;gap:18px;flex-wrap:wrap}
.foot-links a{color:var(--ink);text-decoration:none}
.disclosure{font-size:.82rem;color:var(--muted);margin-top:16px}

@media (max-width:900px){
  .hero-in{grid-template-columns:1fr;gap:28px}
  .grid3,.idea-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .nav a:not(.btn){display:none}
  .row2{grid-template-columns:1fr}
  .person{grid-template-columns:1fr 40px}
  .person input[type=email]{grid-column:1;grid-row:2}
  .person .x{grid-row:1/3;grid-column:2}
  .person{padding-bottom:8px;border-bottom:1px dashed var(--line)}
  .card{padding:18px}
  .add-row,.edit-form{grid-template-columns:1fr}
  .wish{flex-direction:column;align-items:flex-start}
  .hero{padding-top:24px}
}
