/* Whimsy in the artwork; calm, readable controls for the family. */
:root{color-scheme:light;--gutter:clamp(16px,4vw,56px);--page-max:1680px;--bg:#f7f7ec;--card:#fffdf6;--ink:#073b3d;--muted:#466163;--line:#b7cfbf;--red:#c72232;--green:#166451;--gold:#805b08;--soft-green:#e1f2e5;--soft-gold:#fff1cd;--photo:#fff}
body{font:18px/1.55 ui-rounded,"Avenir Next",Avenir,"Segoe UI",sans-serif;background:linear-gradient(180deg,#fffcf3 0,#e1f3eb 700px,#f9f8ee 1600px);min-height:100vh;overflow-x:clip}
main{max-width:var(--page-max);padding:28px var(--gutter) 64px}header{background:#fffdf5;border-bottom:2px solid #b3dace;padding:18px max(var(--gutter),calc((100vw - var(--page-max))/2 + var(--gutter)));flex-wrap:wrap;gap:16px}header a.brand{font-size:30px;letter-spacing:-1.2px;color:var(--ink);font-weight:850;white-space:nowrap}.brand-mark{display:inline-block;color:var(--red);font-size:37px;transform:rotate(-10deg);margin-right:8px}header .who{font-size:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.main-nav{display:flex;align-items:center;gap:8px}.main-nav a{font-weight:750;text-decoration:none;padding:10px 15px;border-radius:16px}.main-nav a:hover,.main-nav a[aria-current=page]{background:#c9eae0}
h1,h2,h3{line-height:1.15;letter-spacing:-.035em;color:var(--ink)}h1{font-size:clamp(32px,4vw,48px);font-weight:850;margin:12px 0}h2{font-size:clamp(25px,3vw,34px);margin:32px 0 12px}h3{font-size:20px;letter-spacing:0;text-transform:none;margin:28px 0 12px}.muted{font-size:16px;color:var(--muted)}p{margin:12px 0 20px}a{text-underline-offset:4px}a:hover{color:var(--red)}.skip-link{position:absolute;left:16px;top:-100px;background:var(--card);padding:12px;z-index:10}.skip-link:focus{top:12px}:focus-visible{outline:3px solid #b01c2e;outline-offset:4px}button,.btn{min-height:48px;font-size:18px;font-weight:750;padding:11px 20px;border:1.5px solid #799f93;border-radius:13px;line-height:1.3}button:hover,.btn:hover{background:#edf7ef;border-color:var(--ink);color:var(--ink)}button.primary,.btn.primary{background:var(--red);border-color:var(--red);color:white;box-shadow:0 3px 0 #8c1825}button.primary:hover,.btn.primary:hover{background:#a91c2a}button.go{background:var(--green);color:white}button.go:hover{background:#0b493b}button.link,a.link{font-size:16px;min-height:44px;padding:10px 6px;color:var(--muted)}label{font-size:17px;color:var(--ink);font-weight:650;margin:20px 0 6px}input,textarea{min-width:0;min-height:50px;border:1.5px solid #789c90;background:#fffefa;border-radius:10px;padding:12px;font-size:18px}input[type=checkbox],input[type=radio]{min-height:0}textarea{resize:vertical}.row{flex-wrap:wrap}.row>div{min-width:150px}form.card{padding:24px}form.card>p:last-child{margin-bottom:0}.card{border:1px solid #b8d2c4;border-radius:20px;padding:24px;margin:16px 0;box-shadow:0 4px 0 #073b3d08}.badge{font-size:14px}.note,.err{padding:16px 20px;border-radius:14px}.err{background:#fff0ed;border:1px solid #c72232}
.hero{position:relative;margin:-28px calc(50% - 50vw) 32px;min-height:clamp(330px,27vw,540px);display:grid;place-items:center;isolation:isolate;overflow:hidden;border-radius:0 0 44% 5% / 0 0 6% 4%}.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}.hero-copy{width:44%;text-align:center;padding:40px 0 65px}.hero h1{font-size:clamp(34px,3.7vw,49px);line-height:1.03;letter-spacing:-.055em;margin:14px 0}.eyebrow{font-size:13px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.hero p{font-size:17px;margin:14px auto 0;max-width:320px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;flex-wrap:wrap}.section-heading h2{margin:0}.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:20px;margin:24px 0}.people a.card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:13px;margin:0;border-radius:24px 17px 25px 18px;padding:24px;overflow:hidden;min-width:0}.people a.card:hover{border-color:var(--green);box-shadow:0 5px 0 #073b3d14;color:var(--ink)}.person-top{display:flex;align-items:center;gap:14px;min-width:0}.person-top strong{display:block;font-size:29px;line-height:1.15;overflow-wrap:anywhere}.person-initial{display:grid;place-items:center;flex-shrink:0;width:56px;height:60px;border:2px solid var(--ink);background:#f8d56a;border-radius:40% 55% 44% 48%;font-size:28px;font-weight:850;transform:rotate(-7deg)}.people .card:nth-child(3n+2) .person-initial{background:#b8e2da;transform:rotate(5deg)}.people .card:nth-child(3n+3) .person-initial{background:#f7c3a8}.person-meta{font-size:16px;min-height:25px}.person-cta{display:block;background:var(--red);color:white;font-weight:800;padding:10px 16px;border-radius:12px;width:100%;text-align:center;margin-top:auto}.privacy-note{display:flex;align-items:flex-start;gap:10px;font-size:16px;color:var(--muted);max-width:800px}.lower-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,540px);gap:clamp(24px,3vw,48px);align-items:start;margin-top:42px}.shopping-panel h2{margin-top:0}.elf-break{margin:0;background:#fffaf0;border:1px solid var(--line);border-radius:26px 18px 29px 20px;overflow:hidden}.elf-break img{display:block;width:100%;height:auto}.elf-break figcaption{padding:0 25px 24px;text-align:center}.elf-break strong{font-size:23px;line-height:1.2;display:block;margin-bottom:8px}.elf-break p{font-size:16px;margin:0}.add-person{margin:32px 0}.add-person summary{font-size:22px;font-weight:750;cursor:pointer;padding:18px 22px;background:var(--card);border:1.5px dashed #709c8e;border-radius:16px;min-height:60px}.add-person[open] summary{margin-bottom:16px}.add-person form{max-width:640px}.list-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--card);border-bottom:3px solid #c8e3d8;padding:24px 28px;border-radius:22px;margin-bottom:20px}.list-banner h1{margin:5px 0 10px}.list-banner p{margin:0}.list-banner-art{width:160px;height:135px;object-fit:cover;border-radius:22px;object-position:right}.gift-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,500px),1fr));gap:0 24px;align-items:start}.gift-list>:not(.item){grid-column:1/-1}.gift-list>.item{margin:12px 0;min-width:0}.gift-list>#item-form{max-width:820px}.gift-list>h3{padding:15px 0 0;border-top:2px dashed #afcbbd}.item{gap:24px;scroll-margin-top:20px}.item .title{font-size:23px;line-height:1.3;font-weight:750}.photo{width:128px;height:128px;border-radius:14px}.item ul.links,.status,.chip,details.post-notice,.notice-banner{font-size:16px}.item ul.links a{display:inline-block;padding:5px 0}.stars{font-size:18px}.secret,.caveat{font-size:15px}.status{padding:8px 13px}.actions{gap:10px;margin-top:16px}.mine-row{padding:16px 0}.updates a.update{padding:16px 0}.chip .amount input{min-height:46px}.starpick{flex-wrap:wrap}fieldset.starpick label{font-size:38px;padding:6px}fieldset.starpick label.zero{font-size:16px}details.post-notice summary{padding:10px 0}.auth-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:48px;max-width:1000px;margin:30px auto}.auth-art img{width:100%;border-radius:35px}.auth-art h1{font-size:48px}.auth-art p{max-width:370px}.auth-form h2{margin-top:0}.auth-form .primary{width:100%}.auth-form .card{padding:28px}.help-content{max-width:760px;margin:auto}.help-content li{margin:16px 0}.site-footer{text-align:center;border-top:1px solid #bad7c8;max-width:calc(var(--page-max) - 2 * var(--gutter));margin:auto;padding:24px;color:var(--muted);font-size:15px}.site-footer a{display:inline-block;padding:8px}.empty-shopping{background:var(--card);padding:24px;border:1px dashed #83a797;border-radius:18px}
/* Gift card: photo beside the title/details; actions, chip-in and update forms use the full card width.
   .body becomes display:contents so its children join the card's grid directly. */
.item{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:22px;row-gap:0;align-content:start}.item .body{display:contents}
.item>.photo{grid-column:1;grid-row:1/span 6;align-self:start}.item .body>*{grid-column:2;min-width:0}
.item .body>.actions,.item .body>.chip,.item .body>details.post-notice{grid-column:1/-1}
.item .body>.status{justify-self:start;margin-top:8px}.actions button.link{font-weight:400}
.item .actions>form:has(>button:not(.link)){flex:0 1 auto}
@media(max-width:600px){.item .actions>form:has(>button:not(.link)){flex:1 1 140px}.item .actions>form:has(>button:not(.link))>button{width:100%}}
label.photo-pick{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:10px 6px;font-size:16px;font-weight:400;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding-top:12px;padding-bottom:10px}.main-nav{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.main-nav a{text-align:center;white-space:nowrap}.who{margin:0}.who>span{display:none}.hero{min-height:330px}.hero-copy{width:47%}.hero h1{font-size:36px}.hero p{font-size:15px}.lower-home{gap:24px}.auth-layout{gap:24px}.auth-art h1{font-size:38px}}
@media(max-width:600px){body{font-size:17px}header{padding:10px 16px 8px;gap:4px 8px}header a.brand{font-size:24px}.brand-mark{font-size:26px}.main-nav{gap:4px}.main-nav a{font-size:15px;padding:10px 4px}.who{font-size:14px!important}header .who button{font-size:15px}main{padding:20px 16px 40px}.hero{margin:-20px calc(50% - 50vw) 26px;min-height:350px;align-items:start;background:#fffaf0}.hero-art{height:190px;top:auto;bottom:0;object-fit:cover}.hero-copy{width:100%;padding:23px 20px 175px}.hero h1{font-size:37px;margin:10px 0}.hero p{font-size:16px;max-width:none;margin:8px 0}.eyebrow{font-size:12px}.people{grid-template-columns:1fr;gap:14px}.people a.card{padding:20px;gap:10px;display:grid;grid-template-columns:1fr auto}.person-top{grid-column:1}.person-top strong{font-size:26px}.person-meta{grid-column:1}.person-cta{grid-column:2;grid-row:1/3;width:auto;padding:12px;font-size:16px}.person-initial{width:44px;height:48px;font-size:24px}.section-heading{gap:14px}.section-heading h2{font-size:28px}.lower-home,.auth-layout{grid-template-columns:1fr}.lower-home{margin-top:30px}.elf-break{max-width:460px;margin:auto}.item{padding:18px;column-gap:14px}.photo{width:85px;height:85px}.item .title{font-size:21px}.actions button{font-size:16px;padding:11px 12px}.list-banner{padding:20px}.list-banner-art{display:none}.list-banner h1{font-size:34px}.auth-layout{margin:0;gap:16px}.auth-art h1{font-size:36px}.auth-art img{max-height:200px;object-fit:contain}.auth-art p{max-width:none}.auth-form .card{padding:22px}.row{flex-direction:column}.row>input{flex:auto}.row>div{min-width:0}.item .notes{overflow-wrap:anywhere}.chip .actions form{max-width:100%}.site-footer{margin:0 16px}.help-content{padding:0}form.card{padding:20px}}
@media(max-width:360px){.main-nav a{font-size:14px;padding:10px 2px}header a.brand{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.person-top>span:last-child{min-width:0}.person-meta{overflow-wrap:anywhere}.chip{overflow-wrap:anywhere}
