@layer reset,base,components,responsive,readability;
@layer reset{*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body,h1,h2,h3,p,ol{margin:0}button,input,textarea{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}a{color:inherit}img{max-width:100%;display:block}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}ol{padding:0;list-style:none}}
@layer base{:root{--paper:#faf6f0;--wine:#591f25;--coral:#bd5145;--peach:#f1e3da;--sage:#71795c;--ink:#4d4540;--muted:#78695f;--line:#dfcbbd;--serif:Georgia,'Times New Roman',serif;--sans:'Avenir Next',Avenir,'Segoe UI',sans-serif}body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:#eab6a5;color:var(--wine)}h1,h2,h3{font-family:var(--serif);color:var(--wine);font-weight:400;line-height:1.1}h2{font-size:clamp(2rem,3.6vw,3.4rem);letter-spacing:-.045em}em{font-weight:400}a{text-decoration:none}button{border:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--wine);outline-offset:5px}.wrap{width:min(1240px,calc(100% - 100px));margin-inline:auto}.eyebrow{font-size:.68rem;letter-spacing:.2em;font-weight:600;color:var(--coral)}.button{display:inline-flex;align-items:center;justify-content:center;gap:34px;background:var(--coral);color:#fff;padding:15px 27px;border:1px solid var(--coral);border-radius:40px;font-size:.9rem;min-height:49px;transition:background .2s,transform .2s}.button:hover{background:#a34138;transform:translateY(-2px)}.button span{font-size:1.3rem;line-height:1}.button-outline{background:transparent;color:var(--wine);border-color:#c99a86}.button-outline:hover{background:#f0dfd1;color:var(--wine)}.text-link{font-size:.84rem;text-decoration:underline;text-underline-offset:5px;display:inline-block;color:var(--wine)}.handwritten{font-family:var(--serif);font-style:italic;color:var(--wine)}.skip-link{position:fixed;top:-100px;left:20px;z-index:99;background:var(--wine);color:white;padding:10px}.skip-link:focus{top:10px}.small{font-size:.76rem;color:var(--muted)}.error{color:#9b1c23;font-size:.85rem}.error:empty{display:none}.success{color:#376346;font-size:.9rem}.muted{color:var(--muted)}}
@layer components{
.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:100px;border-bottom:1px solid #e4d6c86e}.brand{font-family:var(--serif);font-size:1.5rem;color:var(--wine);white-space:nowrap;letter-spacing:-.04em}.brand span{font-size:1.2rem;font-style:italic}.brand i{font-size:1.05rem;font-style:normal;color:#c77265;margin-left:8px}.site-header nav{display:flex;align-items:center;gap:34px;font-size:.78rem}.site-header nav>a:hover{text-decoration:underline;text-underline-offset:5px}.nav-gift{border:1px solid #d8bbab;border-radius:30px;padding:10px 18px;color:var(--wine)}.nav-gift span{margin-left:10px;font-size:1rem}
.hero{display:grid;grid-template-columns:44% 56%;position:relative;min-height:650px;align-items:center;padding-block:52px 66px}.hero-copy{z-index:1;position:relative}.hero h1{font-size:clamp(4.5rem,7.4vw,7rem);line-height:.99;letter-spacing:-.065em;margin:21px 0}.hero h1 em{font-style:italic;color:var(--wine)}.hero-description{font-family:var(--serif);font-size:1.4rem;max-width:370px;line-height:1.4}.hero-date{display:flex;align-items:center;gap:12px;margin:27px 0 24px;font-size:.82rem;color:var(--muted);text-transform:capitalize}.line-icon{font-size:1.65rem;line-height:1}.hero-note{font-size:1.1rem;line-height:1.5;margin-top:30px;transform:rotate(-5deg);padding-left:8px}.hero-note span{display:inline-block;font-size:2rem;color:var(--coral);vertical-align:middle;margin-left:15px}.hero-art{margin-left:-30px;margin-right:-35px;position:relative}.hero-art img{width:100%;height:560px;object-fit:cover;mix-blend-mode:multiply;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 94%,transparent)}.art-caption{display:block;text-align:center;font-family:var(--serif);font-style:italic;font-size:.85rem;color:var(--muted);margin-top:-18px}
.community{position:relative;text-align:center;background:linear-gradient(115deg,#f4e8df,#f6ede5 60%,#f0e2d7);border:1px solid #ebdbcd;border-radius:10px;padding:51px 60px 35px;overflow:hidden}.community h2{margin-top:12px}.section-description{font-size:.84rem;color:var(--muted);margin:14px auto 0;max-width:500px}.heart-divider{display:flex;justify-content:center;align-items:center;gap:16px;color:var(--coral);font-size:1.25rem;margin-top:15px}.heart-divider span{width:65px;height:1px;background:#ca8f7a}.botanical{position:absolute;top:10px;color:#7f88615e;font-size:7rem;line-height:1;pointer-events:none}.botanical-left{left:6px;transform:rotate(-50deg)}.botanical-right{right:6px;transform:rotate(130deg)}.ranking-status{padding:24px 10px 12px;display:grid;justify-items:center;gap:9px}.empty-heart{font-family:var(--serif);font-size:2.2rem;color:#b56858;line-height:1.2}.ranking-status>p{font-family:var(--serif);font-size:1.4rem;color:var(--wine)}.ranking-status>span:not(.empty-heart){font-size:.8rem;color:var(--muted)}.ranking-status .text-link{margin-top:3px}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:17px;max-width:870px;margin:35px auto 0}.person-card{display:flex;flex-direction:column;align-items:center;border:1px solid #dcc2ae;padding:20px 14px 24px;border-radius:70px 70px 8px 8px;min-height:168px;background:#faf5ed7d;overflow-wrap:anywhere}.person-card.first{background:#eddbca;border-color:#cfa186}.rank{font-size:.72rem;letter-spacing:.13em;color:var(--coral)}.person-card .rank{border-bottom:1px solid #d0af98;padding-bottom:6px;margin-bottom:12px}.person-card strong{font-size:1.55rem;font-family:var(--serif);font-weight:400;color:var(--wine);line-height:1.2}.person-caption{font-size:.66rem;color:#766252;margin-top:12px}.people-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:870px;margin:20px auto 0}.people-list li{display:flex;align-items:center;gap:10px;background:#fbf6f08c;border:1px solid #e2cdbd;border-radius:30px;padding:7px 17px;max-width:100%;overflow-wrap:anywhere}.people-list strong{font-family:var(--serif);color:var(--wine);font-size:1rem;font-weight:400}.ranking-note{font-size:.68rem;color:var(--muted);margin-top:19px}.thanks{font-size:1.3rem;margin-top:26px}.thanks span{color:var(--coral);font-size:1.7rem;margin-left:10px}
.event{display:grid;grid-template-columns:1fr 1fr;gap:110px;padding-block:95px 85px}.event-intro h2{margin:15px 0 22px}.event-intro>p:not(.eyebrow){max-width:380px;font-size:.92rem;line-height:1.9}.event-stamp{margin-top:27px;width:116px;display:grid;justify-items:center;transform:rotate(-12deg);color:var(--coral);border:1px solid #cd9c85;border-radius:50%;padding:17px 8px;line-height:1.15}.event-stamp span{font-size:.5rem;letter-spacing:.2em}.event-stamp strong{font-family:var(--serif);font-size:2.3rem;font-weight:400}.event-details{padding-top:5px}.detail-row{display:flex;gap:24px;padding-block:22px;border-bottom:1px solid var(--line)}.detail-row:first-child{padding-top:0}.detail-row:last-child{border-bottom:none;padding-bottom:0}.detail-icon{font-size:1.7rem;color:#9b6a54;width:26px;flex-shrink:0;text-align:center}.detail-row .eyebrow{font-size:.59rem;letter-spacing:.17em;color:var(--muted);margin:4px 0 8px}.detail-row h3{font-size:1.4rem;line-height:1.3;text-transform:none}.detail-row h3#event-date::first-letter{text-transform:uppercase}.detail-row p:not(.eyebrow){font-size:.83rem;margin-top:8px}.detail-row .text-link{margin-top:9px}.detail-row .button{margin-top:17px;font-size:.77rem;gap:18px;padding:11px 19px;min-height:45px}.detail-row p.small{font-size:.67rem;max-width:310px}
.gift{background:#f1e6db;border:1px solid #e4cdbb;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;padding:52px 64px;gap:85px}.gift-intro{position:relative}.gift-intro .eyebrow{margin-bottom:15px}.gift-intro h2{font-size:3rem}.gift-intro>p:not(.eyebrow){font-size:.88rem;max-width:330px;margin-top:18px}.gift-intro .gift-small{font-size:.79rem;color:var(--muted)}.envelope{float:right;margin-right:15px;margin-top:15px;width:63px;height:43px;border:1px solid #ae7557;color:var(--coral);display:grid;place-items:center;font-size:1.8rem;line-height:1;transform:rotate(-12deg);background:linear-gradient(30deg,transparent 48%,#ae755733 49%,#ae755733 51%,transparent 52%)}.payment-panel>.eyebrow{color:var(--muted);font-size:.6rem;margin-bottom:4px}.payment-method{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid #dbc2ae;padding:14px 0}.payment-method>div{min-width:0}.method-label{display:block;font-size:.7rem;color:var(--muted)}.payment-method strong{font-family:var(--serif);font-weight:400;font-size:1.5rem;color:var(--wine);display:block;overflow-wrap:anywhere}.copy-button{background:transparent;color:var(--wine);font-size:.7rem;border:1px solid #d5bbaa;border-radius:20px;padding:8px 12px;min-height:38px;white-space:nowrap}.copy-button:hover{background:#e6d3c4}.copy-button span{margin-left:5px}.holder{display:flex;flex-direction:column;padding-top:17px;font-size:.7rem;color:var(--muted);gap:2px}.holder strong{font-weight:500;color:var(--wine);font-size:.8rem}.payment-footnote{font-size:.68rem;color:var(--muted);margin-top:14px;max-width:330px}.copy-status{font-size:.7rem;color:var(--wine);margin-top:10px}.copy-status:empty{display:none}.closing{text-align:center;padding-block:53px 46px}.closing>span{font-family:var(--serif);font-size:2.4rem;color:var(--coral);line-height:1}.closing .handwritten{font-size:1.5rem;margin:7px 0 10px}.closing p:last-child{font-size:.78rem;color:var(--muted)}.site-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:22px 27px;font-size:.67rem;color:var(--muted)}.site-footer a{text-decoration:underline;text-underline-offset:3px}
/* Administration */
.admin-body{background:#f8f4ef}.admin-header{min-height:83px}.admin-header .brand{font-size:1.3rem}.admin-header nav{gap:18px}.admin-header button{background:transparent;color:var(--wine);font-size:.8rem}.admin-main{padding-block:42px 60px}.login-card{max-width:420px;margin:30px auto;background:#fffcf7;padding:36px;border:1px solid var(--line);border-radius:14px}.login-card h1{font-size:2.4rem;margin:10px 0 15px}.login-card>p:not(.eyebrow){font-size:.9rem;color:var(--muted)}.login-card form{margin-top:26px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:17px}.field label{font-size:.81rem;font-weight:500;color:var(--wine)}.field input,.field textarea{width:100%;min-width:0;background:#fffdf9;border:1px solid #cdbcae;border-radius:7px;min-height:45px;padding:10px 12px;color:var(--ink);font-size:.92rem}.field input[aria-invalid=true]{border-color:#ad2730;box-shadow:0 0 0 1px #ad2730}.field .hint{font-size:.69rem;color:var(--muted)}.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-actions .button{gap:12px;padding:10px 21px;min-height:45px}.admin-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.admin-title h1{font-size:2.65rem;margin-top:7px}.admin-title p:not(.eyebrow){font-size:.83rem;color:var(--muted);margin-top:8px}.admin-title .button{font-size:.77rem;gap:15px}.stats{display:grid;grid-template-columns:2fr 1fr 1fr;gap:15px;margin-bottom:28px}.stat{border:1px solid var(--line);border-radius:10px;padding:21px 24px;background:#fffcf7;min-width:0}.stat:first-child{background:var(--wine);border-color:var(--wine);color:#fff5ea}.stat span{font-size:.7rem;display:block;opacity:.85}.stat strong{font-family:var(--serif);font-weight:400;display:block;font-size:2.1rem;overflow-wrap:anywhere;line-height:1.35}.stat small{font-size:.64rem;opacity:.8}.admin-columns{display:grid;grid-template-columns:340px minmax(0,1fr);gap:27px;align-items:start}.admin-card{border:1px solid var(--line);border-radius:11px;background:#fffcf7;padding:25px}.admin-card h2{font-size:1.5rem;letter-spacing:-.025em;margin-bottom:8px}.admin-card>.small{margin-bottom:22px}.admin-card .button{font-size:.8rem}.form-note{margin-top:15px;font-size:.7rem;color:var(--muted)}.table-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px}.table-header h2{margin:0}.table-scroll{overflow-x:auto}.contributions-table{border-collapse:collapse;width:100%;text-align:left;font-size:.79rem}.contributions-table th{font-size:.66rem;font-weight:500;color:var(--muted);border-bottom:1px solid var(--line);padding:0 10px 10px 0}.contributions-table td{border-bottom:1px solid #eadfd5;padding:14px 10px 14px 0;vertical-align:top}.contributions-table td.name{overflow-wrap:anywhere;min-width:110px;max-width:230px}.contributions-table td.money{white-space:nowrap;font-weight:500;color:var(--wine)}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions button{background:none;font-size:.68rem;text-decoration:underline;text-underline-offset:3px;padding:4px;color:var(--wine);min-height:32px}.row-actions button.archive{color:#8f5c4c}.empty-table{padding:25px 0;text-align:center;color:var(--muted);font-size:.83rem}.settings-card{margin-top:28px}.settings-card summary{cursor:pointer;font-family:var(--serif);font-size:1.35rem;color:var(--wine)}.settings-form{margin-top:24px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.settings-grid .wide{grid-column:1/-1}.settings-form fieldset{border:0;border-top:1px solid var(--line);padding:20px 0 0;margin:20px 0 0}.settings-form legend{padding-right:12px;font-size:.8rem;color:var(--wine)}.admin-notice{margin:0 0 15px}.admin-notice:empty{display:none}dialog{border:1px solid var(--line);border-radius:18px;max-width:min(600px,calc(100vw - 32px));background:var(--paper);color:var(--ink);padding:38px}dialog::backdrop{background:#341617a8;backdrop-filter:blur(6px)}.presentation{text-align:center;width:800px;max-width:calc(100vw - 32px);padding:55px 30px}.presentation h2{font-size:3.5rem;margin:12px 0 22px}.presentation>.heart{font-size:3rem;color:var(--coral)}.presentation-total{font-family:var(--serif);font-size:clamp(2.2rem,7vw,5rem);color:var(--wine);margin:12px 0;line-height:1.2;overflow-wrap:anywhere}.presentation .button{margin-top:28px}.presentation-caption{font-size:.9rem;color:var(--muted)}.archive-dialog h2{font-size:1.7rem;margin-bottom:16px}.archive-dialog p{font-size:.88rem;margin-bottom:20px}.dialog-close{position:absolute;right:17px;top:13px;padding:6px;background:transparent;color:var(--wine);font-size:1.5rem}.screen-error{padding:20px;color:#9b1c23}.screen-error:empty{display:none}
}
@layer responsive{
@media(min-width:1450px){.hero-art img{height:600px}.hero{min-height:700px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero{grid-template-columns:46% 54%;min-height:570px;padding-top:36px}.hero h1{font-size:6rem}.hero-art{margin-left:-45px;margin-right:-20px}.hero-art img{height:480px}.hero-description{font-size:1.2rem}.event{gap:65px}.gift{gap:50px;padding:42px}.gift-intro h2{font-size:2.6rem}.envelope{display:none}.community{padding-inline:35px}.admin-columns{grid-template-columns:300px minmax(0,1fr)}.admin-card{padding:21px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{min-height:79px}.brand{font-size:1.3rem}.site-header nav{gap:15px;font-size:.7rem}.site-header nav>a:first-child{display:none}.nav-gift{padding:8px 12px}.nav-gift span{display:none}.hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:25px;min-height:0}.hero-copy{padding-left:8px}.hero h1{font-size:clamp(4.9rem,13vw,6.5rem);margin:18px 0}.hero-description{max-width:300px;font-size:1.23rem}.hero-date{margin-top:21px;font-size:.75rem}.hero .button{padding:12px 24px;min-height:47px;font-size:.85rem}.hero-note{position:absolute;bottom:6px;left:230px;font-size:.83rem;width:170px;margin:0}.hero-note span{font-size:1.5rem;margin-left:0}.hero-art{margin:15px -15px 0}.hero-art img{height:auto;aspect-ratio:1.5;object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.art-caption{font-size:.71rem;margin-top:0}.community{padding:34px 20px 27px}.community h2{max-width:330px;margin:12px auto 0;font-size:2.1rem;line-height:1.1}.community .eyebrow{font-size:.57rem}.section-description{font-size:.77rem;max-width:310px}.botanical{font-size:5.5rem;top:15px}.botanical-left{left:-25px}.botanical-right{right:-25px}.thanks{font-size:1.05rem;line-height:1.5;max-width:260px;margin:24px auto 0}.thanks span{margin-left:0}.podium{gap:8px;margin-top:25px}.person-card{padding:17px 7px;min-height:160px;border-radius:45px 45px 7px 7px}.person-card strong{font-size:1.13rem}.person-caption{font-size:.56rem}.rank{font-size:.6rem}.people-list{gap:8px}.people-list li{padding:5px 11px}.people-list strong{font-size:.87rem}.ranking-note{font-size:.6rem}.event{grid-template-columns:1fr;gap:32px;padding-block:52px}.event-intro{position:relative}.event-intro h2{font-size:2.6rem;max-width:300px}.event-intro>p:not(.eyebrow){font-size:.85rem;max-width:none;padding-right:10px}.event-stamp{position:absolute;top:5px;right:0;width:80px;padding:13px 5px;margin-top:20px}.event-stamp strong{font-size:1.8rem}.event-stamp span{font-size:.39rem}.detail-row{gap:18px;padding-block:22px}.detail-row h3{font-size:1.3rem}.gift{grid-template-columns:1fr;gap:34px;padding:33px 26px}.gift-intro h2{font-size:2.7rem}.envelope{display:grid;margin-right:0}.gift-intro>p:not(.eyebrow){max-width:none}.payment-method strong{font-size:1.5rem}.payment-panel>.eyebrow{font-size:.61rem}.closing{padding-block:40px 33px}.closing .handwritten{font-size:1.22rem}.closing p:last-child{font-size:.7rem}.site-footer{font-size:.61rem;padding-block:19px}.admin-title{align-items:flex-start;flex-direction:column;gap:17px}.admin-title h1{font-size:2.3rem}.admin-main{padding-top:25px}.stats{gap:8px;grid-template-columns:2fr 1fr 1fr}.stat{padding:15px 11px}.stat strong{font-size:1.55rem}.stat span,.stat small{font-size:.58rem}.admin-columns{grid-template-columns:1fr}.admin-card{padding:22px}.admin-header nav>a:first-child{display:block}.admin-header nav{gap:13px}.admin-header .brand{font-size:1.05rem}.settings-grid{grid-template-columns:1fr}.settings-grid .wide{grid-column:auto}.presentation h2{font-size:2.6rem}.login-card{margin-top:12px;padding:27px}.admin-title .button{min-height:42px}.table-header{align-items:flex-start}.contributions-table{font-size:.75rem}}
@media(max-width:390px){.wrap{width:calc(100% - 30px)}.brand{font-size:1.15rem}.site-header nav{gap:11px;font-size:.66rem}.nav-gift{padding:7px 9px}.hero-copy{padding-left:3px}.hero h1{font-size:4.7rem}.hero-note{left:200px;width:100px;font-size:.67rem}.hero-note span{display:none}.hero .eyebrow{font-size:.61rem}.hero-date{font-size:.68rem}.community{padding-inline:13px}.event-intro .eyebrow{max-width:190px}.event-stamp{right:0;width:65px;top:14px}.event-intro h2{font-size:2.3rem}.gift{padding-inline:21px}.stat strong{font-size:1.25rem}.stat{padding:14px 9px}.contributions-table th,.contributions-table td{padding-right:7px}.site-footer{flex-wrap:wrap;gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media(max-width:760px){.hero{grid-template-columns:minmax(0,1fr)}.hero-copy,.hero-art{min-width:0}}
@media(max-width:390px){.hero h1{font-size:clamp(3.4rem,18.5vw,4.4rem)}.hero-note{left:186px;width:96px}.event-stamp{display:none}.podium{grid-template-columns:minmax(0,1fr);gap:9px}.person-card{display:grid;grid-template-columns:26px minmax(0,1fr);gap:5px 12px;text-align:left;min-height:0;border-radius:8px;padding:14px 17px;align-items:center}.person-card .rank{grid-row:1/3;border:none;padding:0;margin:0}.person-card strong{font-size:1.3rem;overflow-wrap:anywhere}.person-caption{margin:0;font-size:.65rem}.ranking-note{font-size:.63rem}.hero-date{align-items:flex-start}.hero-date span:last-child{max-width:245px}}
@media(max-width:760px){.hero-note{position:static;width:auto;max-width:none;margin-top:24px;font-size:1rem;transform:rotate(-4deg)}.hero-note br{display:none}.hero-note span{display:inline-block;font-size:1.4rem;margin-left:8px}}
}

/* Public invitation: readable at a normal phone size, without needing zoom. */
@layer readability {
  .public-body {
    --coral: #a53b30;
    --ink: #40362f;
    --muted: #574b43;
    font-size: 18px;
    line-height: 1.6;
  }
  .public-body :is(p, .section-description, .method-label, .holder, .holder strong, .holder span, .person-caption, .ranking-note, .rank, .ranking-status > span:not(.empty-heart), .people-list strong) {
    font-size: 1.125rem;
    line-height: 1.6;
  }
  .public-body :is(.eyebrow, .detail-row .eyebrow, .payment-panel > .eyebrow) {
    font-size: 1rem;
    letter-spacing: .045em;
    line-height: 1.5;
    color: var(--wine);
  }
  .public-body :is(.handwritten, h1 em, h2 em, .art-caption) {
    font-style: normal;
    transform: none;
  }
  .public-body :is(.section-description, .method-label, .person-caption, .ranking-note, .payment-footnote, .holder, .art-caption, .small) {
    color: var(--muted);
  }
  .public-body :is(.button, .copy-button, .nav-gift, .text-link) {
    font-size: 1.125rem;
    line-height: 1.4;
    font-weight: 600;
    min-height: 52px;
    white-space: normal;
  }
  .public-body .button { padding: 14px 24px; gap: 14px; }
  .public-body .text-link { display: inline-flex; align-items: center; padding-block: 10px; }
  .public-body .site-header nav { gap: 24px; font-size: 1rem; }
  .public-body .site-header nav a { display: inline-flex; align-items: center; min-height: 48px; }
  .public-body .site-header .nav-gift { font-size: 1rem; }
  .public-body .hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; min-height: 0; padding-block: 44px 52px; }
  .public-body .hero-copy { min-width: 0; padding: 0; }
  .public-body .hero h1 { font-size: clamp(3rem, 5.8vw, 5.25rem); letter-spacing: -.035em; line-height: 1.06; margin: 17px 0 20px; }
  .public-body .hero-description { font-family: var(--sans); font-size: 1.25rem; line-height: 1.6; max-width: 490px; }
  .public-body .hero-description strong { font-weight: 600; }
  .public-body .gift-callout { max-width: 510px; padding: 18px 22px; background: var(--wine); color: #fffaf5; border-radius: 12px; }
  .public-body .gift-callout p { margin: 0; line-height: 1.4; }
  .public-body .gift-callout strong { display: block; font-size: 1.625rem; font-weight: 700; line-height: 1.3; }
  .public-body .gift-callout span { display: block; font-size: 1.125rem; margin-top: 8px; }
  .public-body #payment-purpose { padding: 16px 18px; border-left: 4px solid var(--wine); background: #fffaf5; border-radius: 0 8px 8px 0; font-weight: 600; color: var(--wine); }
  .public-body .hero-contribute { margin-top: 24px; }
  .public-body .hero-contribute span { font-size: 1.5rem; }
  .public-body .hero-methods { margin-top: 10px; }
  .public-body .hero-date { font-size: 1.125rem; text-transform: none; margin: 24px 0 0; align-items: flex-start; }
  .public-body .hero-date span:last-child { max-width: none; }
  .public-body .hero-date .line-icon { margin-top: 3px; }
  .public-body .hero-event-link { margin-top: 4px; }
  .public-body .hero-art { margin: 0 -10px 0 -20px; min-width: 0; }
  .public-body .hero-art img { height: 520px; }
  .public-body .art-caption { font-size: 1rem; line-height: 1.6; margin-top: 10px; }
  .public-body .gift { scroll-margin-block: 24px 110px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 55px; padding: 45px; }
  .public-body .gift-intro h2 { font-size: clamp(2rem, 3.8vw, 3.25rem); line-height: 1.15; }
  .public-body .gift-intro > p:not(.eyebrow) { font-size: 1.125rem; max-width: none; }
  .public-body .gift-intro .gift-small { font-size: 1.125rem; }
  .public-body .envelope { float: none; margin: 0 0 25px; }
  .public-body .payment-steps { list-style: decimal; padding-left: 24px; margin: 22px 0; font-size: 1.125rem; }
  .public-body .payment-steps li { margin-bottom: 12px; padding-left: 5px; }
  .public-body .payment-method { align-items: flex-start; flex-direction: column; gap: 12px; padding: 20px 0; }
  .public-body .method-label { font-weight: 600; }
  .public-body .payment-method strong { font-family: var(--sans); font-weight: 600; font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.4; letter-spacing: .02em; }
  .public-body .copy-button { padding: 12px 20px; border-color: #997561; background: #fffaf5; }
  .public-body .copy-button:hover { background: #ead3c1; }
  .public-body .holder { gap: 7px; padding-top: 24px; }
  .public-body .holder strong { font-weight: 600; }
  .public-body :is(.payment-footnote, .detail-row p.small) { max-width: none; }
  .public-body .copy-status { font-weight: 600; margin-top: 16px; }
  .public-body .community { margin-top: 52px; }
  .public-body .section-description { max-width: 750px; }
  .public-body .community h2 { line-height: 1.2; }
  .public-body .podium { gap: 18px; }
  .public-body .person-card strong { font-size: 1.75rem; line-height: 1.35; }
  .public-body .person-caption { margin-top: 10px; }
  .public-body .people-list li { border-radius: 12px; padding: 10px 15px; }
  .public-body .thanks { font-family: var(--sans); font-size: 1.25rem; line-height: 1.6; max-width: none; }
  .public-body .event { gap: 70px; padding-block: 65px; }
  .public-body .event-intro > p:not(.eyebrow) { font-size: 1.125rem; max-width: none; padding-right: 0; margin-top: 18px; }
  .public-body .event-stamp { display: none; }
  .public-body .detail-row > div { min-width: 0; }
  .public-body .detail-row h3 { font-size: 1.5rem; line-height: 1.4; }
  .public-body .detail-row p:not(.eyebrow) { font-size: 1.125rem; }
  .public-body .detail-row .button { font-size: 1.125rem; max-width: 100%; }
  .public-body .closing .handwritten { font-family: var(--sans); font-size: 1.375rem; line-height: 1.6; }
  .public-body .closing p:last-child { font-size: 1.125rem; }
  .public-body .site-footer { font-size: 1rem; line-height: 1.6; align-items: center; }
  .public-body .site-footer a { min-height: 48px; display: inline-flex; align-items: center; }
  .mobile-contribute { display: none; }

  @media (max-width: 1000px) {
    .public-body .site-header nav > a:first-child { display: none; }
    .public-body .hero { gap: 10px; }
    .public-body .hero-art img { height: 450px; }
    .public-body .gift { gap: 35px; padding: 34px; }
    .public-body .event { gap: 35px; }
  }
  @media (max-width: 760px) {
    .public-body { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
    .public-body .wrap { width: calc(100% - 32px); }
    .public-body .site-header { min-height: 80px; gap: 10px; }
    .public-body .brand { font-size: 1.25rem; }
    .public-body .brand i { display: none; }
    .public-body .site-header nav > a:not(.nav-gift) { display: none; }
    .public-body .site-header .nav-gift { font-size: 1rem; min-height: 48px; padding: 10px 14px; }
    .public-body .hero { grid-template-columns: minmax(0,1fr); gap: 20px; padding-block: 24px 30px; }
    .public-body .hero .eyebrow { font-size: 1.0625rem; letter-spacing: 0; line-height: 1.5; }
    .public-body .hero h1 { font-size: clamp(2.7rem, 11vw, 3.7rem); line-height: 1.07; margin: 12px 0 14px; }
    .public-body .hero-description { font-size: 1.125rem; line-height: 1.6; }
    .public-body .gift-callout { padding: 14px 16px; }
    .public-body .gift-callout strong { font-size: 1.375rem; }
    .public-body .gift-callout span { margin-top: 6px; }
    .public-body .hero-contribute { width: 100%; margin-top: 20px; gap: 10px; padding-inline: 14px; }
    .public-body .hero-date { margin-top: 21px; gap: 10px; }
    .public-body .hero-art { margin: 0; }
    .public-body .hero-art img { height: auto; max-height: 270px; object-fit: contain; }
    .public-body .art-caption { font-family: var(--sans); margin-top: 7px; font-size: 1rem; }
    .public-body .gift { grid-template-columns: minmax(0,1fr); padding: 28px 20px; gap: 20px; }
    .public-body .gift-intro h2 { font-size: 2.1rem; }
    .public-body .gift-intro .eyebrow { margin-bottom: 10px; }
    .public-body .envelope { margin-bottom: 22px; }
    .public-body .payment-method { gap: 12px; }
    .public-body .copy-button { width: 100%; }
    .public-body .payment-method strong { font-size: 1.625rem; }
    .public-body .community { margin-top: 35px; padding: 32px 20px; }
    .public-body .community h2 { font-size: 2.15rem; max-width: none; }
    .public-body .botanical { display: none; }
    .public-body .podium { grid-template-columns: minmax(0,1fr); gap: 12px; }
    .public-body .person-card { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 5px 12px; text-align: left; min-height: 0; border-radius: 10px; padding: 18px 14px; align-items: center; }
    .public-body .person-card .rank { grid-row: 1/3; border: 0; margin: 0; padding: 0; }
    .public-body .person-card strong { font-size: 1.5rem; }
    .public-body .person-caption { margin: 0; }
    .public-body .event { grid-template-columns: minmax(0,1fr); gap: 32px; padding-block: 45px; }
    .public-body .event-intro h2 { font-size: 2.3rem; max-width: none; line-height: 1.2; }
    .public-body .event-intro .eyebrow { max-width: none; }
    .public-body .detail-row { gap: 12px; }
    .public-body .detail-row .button { gap: 8px; padding: 12px; width: 100%; }
    .public-body .closing { padding-block: 30px; }
    .public-body .site-footer { flex-direction: column; align-items: flex-start; gap: 5px; }
    .public-body .mobile-contribute { display: block; position: fixed; z-index: 20; inset: auto 0 0; background: var(--paper); border-top: 1px solid #c9a994; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); box-shadow: 0 -4px 18px #591f2514; }
    .public-body .mobile-contribute .button { width: 100%; }
  }
  @media (max-width: 360px) {
    .public-body .brand { font-size: 1.1875rem; }
    .public-body .gift, .public-body .community { padding-inline: 16px; }
    .public-body .hero-contribute { font-size: 1.0625rem; }
  }
}
