:root{--paper:#fffaf7;--blush:#f6e8e4;--rose:#edcfca;--ink:#603b42;--soft:#8a6a70;--gold:#ac8458;--line:#ead8d2}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 15% 0,#fbefec 0,transparent 45%),radial-gradient(circle at 100% 30%,#f7ece2 0,transparent 40%),var(--paper);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
.tb{max-width:980px;margin:0 auto;padding:20px 18px 60px}
.tb-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:28px}
.tb-top a{color:var(--ink);text-decoration:none;font:600 15px/1 Georgia,serif;letter-spacing:.08em;text-transform:uppercase}
.tb-link{background:none;border:0;color:var(--soft);font:inherit;text-decoration:underline;cursor:pointer}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0}
h1{font-size:clamp(34px,6vw,54px);line-height:1.1;font-style:italic}
h1 .amp{color:var(--gold);font-style:normal;padding:0 .15em}
h2{font-size:24px;margin-bottom:6px}
.tb-center{justify-content:center;margin-top:22px}
.tb-msgbox p{margin:0}
.tb-state,.tb-msgbox{text-align:center;padding:60px 10px;font:20px/1.5 Georgia,serif}
.tb-hero{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:36px;align-items:center;margin-bottom:28px}
.tb-envelope{background:var(--blush);border-radius:28px;padding:28px;position:relative}
.tb-envelope:after{content:"";position:absolute;inset:10px;border:1px solid rgba(172,132,88,.35);border-radius:20px;pointer-events:none}
.tb-envelope img{display:block;width:100%;height:auto;border-radius:10px}
.tb-eyebrow{margin:0 0 10px}
.tb-badge{display:inline-block;padding:4px 14px;border-radius:99px;background:#efe2de;color:var(--soft);font-size:13px;letter-spacing:.04em}
.tb-badge.is-live{background:#e3eedf;color:#3f6a3a}
.tb-date{margin:10px 0 18px;color:var(--soft);font:19px Georgia,serif;letter-spacing:.03em}
.tb-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border-radius:99px;border:1px solid var(--ink);background:var(--ink);color:#fff;font:15px system-ui,sans-serif;text-decoration:none;cursor:pointer;transition:transform .15s,background .15s}
.tb-btn:hover{transform:translateY(-1px)}
.tb-btn:focus-visible,.tb-link:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.tb-btn--ghost{background:transparent;color:var(--ink);border-color:var(--rose)}
.tb-btn--ghost:hover{background:#fff}
.tb-btn[disabled]{opacity:.55;cursor:default;transform:none}
.tb-msg{min-height:1.5em;margin:12px 0 0;color:var(--soft);font-size:14px}
.tb-card{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:24px;padding:26px;margin-bottom:20px;box-shadow:0 10px 30px rgba(96,59,66,.05)}
.tb-sub{color:var(--soft);font-size:14px;margin:0 0 16px}
.tb-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.tb-linkRow{display:flex;gap:10px;margin:12px 0 14px}
.tb-linkRow input{flex:1;min-width:0;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:99px;background:var(--paper);color:var(--ink);font:14px ui-monospace,monospace}
.tb-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tb-stats--4{grid-template-columns:repeat(4,1fr)}
.tb-stats div{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px 10px;text-align:center}
.tb-stats b{display:block;font:400 36px/1.1 Georgia,serif;color:var(--ink)}
.tb-stats span{color:var(--soft);font-size:14px}
.tb-special ul{list-style:none;margin:8px 0 0;padding:0}
.tb-special li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px dashed var(--line)}
.tb-special li:last-child{border-bottom:0}
.tb-special li:before{content:"❦";color:var(--gold);font-size:18px;line-height:1.3}
.tb-allergy{color:#9b3b35}
select{min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:99px;background:var(--paper);color:var(--ink);font:15px system-ui,sans-serif}
.tb-rsvp{border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin-bottom:12px;background:var(--paper)}
.tb-rsvp .tb-row{margin:0}
.tb-rsvp strong{font:18px Georgia,serif}
.tb-answer{padding:4px 12px;border-radius:99px;font-size:13px;background:#e3eedf;color:#3f6a3a}
.tb-answer.no{background:#f6e1df;color:#9b3b35}
.tb-people{margin:10px 0 0;padding-left:18px;font-size:15px}
.tb-wish{margin:10px 0 0;font:italic 17px/1.5 Georgia,serif;color:var(--ink)}
.tb-when{color:var(--soft);font-size:13px;margin-top:8px;display:block}
.tb-foot{text-align:center;color:var(--soft);font-size:13px;margin-top:26px}
@media (max-width:720px){.tb-hero{grid-template-columns:1fr;gap:22px;text-align:center}.tb-hero .tb-actions{justify-content:center}.tb-envelope{max-width:340px;margin:0 auto}.tb-stats--4{grid-template-columns:repeat(2,1fr)}.tb-linkRow{flex-direction:column}.tb-card{padding:20px}}
@media (prefers-reduced-motion:reduce){.tb-btn{transition:none}}
@media print{body{background:#fff;font-size:13px}.tb-top,.tb-noPrint,.tb-actions,.tb-envelope,#tbShare,.tb-msg{display:none!important}.tb-hero{display:block;margin-bottom:12px}.tb-card{box-shadow:none;break-inside:avoid;padding:14px;border-radius:10px}h1{font-size:30px}}

.tb-topRight{display:flex;align-items:center;gap:18px}.tb-top .tb-topShop{font:14px/1 system-ui;letter-spacing:0;text-transform:none;text-decoration:underline}.tb-top>a{display:inline-flex;align-items:center;min-height:44px}
.tb-dietBars{display:grid;gap:10px;margin-top:18px}
.tb-dietBar{position:relative;min-height:42px;overflow:hidden;border-radius:10px;background:var(--paper);border:1px solid var(--line)}
.tb-dietFill{position:absolute;inset:0 auto 0 0;width:0;background:var(--rose)}
.tb-dietLabel{position:relative;display:block;padding:10px 12px;color:var(--ink);font-size:14px;line-height:1.5}
.tb-dietLabel b{font-weight:700}
@media print{.tb-dietBar,.tb-dietFill{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
