
.clipboard-field{position:fixed;left:-9999px;top:0}
:root{--paper:#f8f5ee;--ink:#1b3e36;--muted:#777f72;--line:#e4e5d9;--green:#234d40;--red:#bc523c;--soft:#eef1e5;--gold:#ca9d55;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #bf8c3c;outline-offset:4px}input,textarea,select{width:100%;border:1px solid #d8ddd1;background:#fffefa;border-radius:10px;padding:13px 14px;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:#658872;box-shadow:0 0 0 3px #63876c1b}textarea{resize:vertical}label{display:block;font-size:13px;font-weight:650}label input,label select,label textarea{margin-top:8px}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.045em}p{line-height:1.7;color:var(--muted)}.brand{display:inline-flex;align-items:center;gap:10px;font-size:20px;font-weight:800;letter-spacing:-.7px;text-decoration:none;white-space:nowrap}.brand-icon{font-size:32px;line-height:1;color:var(--red);font-weight:400}.brand-dot{color:var(--red)}.brand>.brand-dot{margin-left:-9px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:750;color:var(--muted)}.button{border:none;display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:45px;padding:12px 20px;border-radius:9px;font-size:13px;font-weight:700;transition:background .15s,transform .15s;text-decoration:none}.button:hover{transform:translateY(-1px)}.primary{background:var(--green);color:#fffefa}.primary:hover{background:#153a2f}.secondary{background:#edf0e5;color:var(--ink);border:1px solid #dce1d3}.danger{background:var(--red);color:white}.wide{width:100%}.text-button{padding:7px 0;border:none;background:none;color:var(--green);font-size:12px;font-weight:700}.text-button:hover{text-decoration:underline}.small{font-size:12px;color:var(--muted);line-height:1.6}.subtle{font-size:13px;letter-spacing:0;color:var(--muted);font-weight:450;margin-left:7px}.optional{font-size:11px;color:var(--muted);font-weight:400;margin-left:4px}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:20;border-radius:12px;padding:14px 22px;max-width:90vw;background:var(--ink);color:white;font-size:13px;box-shadow:0 10px 40px #183e3530}.form-error{font-size:13px;color:#a23422;background:#fbede7;padding:10px 13px;border-radius:7px}.auth{display:grid;grid-template-columns:1.08fr 1fr;min-height:100vh}.auth-story{padding:45px 8%;background:#edf0e4;display:flex;flex-direction:column;position:relative;overflow:hidden}.story-content{margin:auto 0;padding-top:60px}.story-content h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(40px,4.7vw,67px);font-weight:500;line-height:1.08;margin:19px 0 24px;letter-spacing:-2px}.story-content p{font-size:15px;max-width:380px}.story-foot{font-size:11px;letter-spacing:.3px;margin:20px 0 0}.letter-art{height:250px;width:320px;position:relative;margin:35px auto 15px}.paper{position:absolute;left:65px;top:5px;width:190px;height:200px;background:#fffdf5;box-shadow:0 10px 30px #173e3510;transform:rotate(-8deg);padding:28px 24px;border:1px solid #e2dfce}.paper span{font-family:Georgia,serif;font-style:italic;font-size:19px}.paper i{display:block;height:1px;background:#e3ded0;margin-top:20px}.paper b{display:block;color:var(--red);font:40px Georgia;text-align:right;margin:5px 0}.envelope{position:absolute;left:30px;bottom:5px;width:260px;height:150px;background:#e6d6b7;clip-path:polygon(0 0,50% 45%,100% 0,100% 100%,0 100%);transform:rotate(3deg)}.envelope:after{content:"";position:absolute;inset:0;background:#eddec1;clip-path:polygon(0 100%,50% 38%,100% 100%)}.seal{position:absolute;left:141px;bottom:55px;background:var(--red);color:#f5e4cb;width:39px;height:39px;display:grid;place-items:center;border-radius:50%;border:3px double #d68b6d;font:italic 23px Georgia;transform:rotate(-13deg)}.spark{position:absolute;color:var(--red)}.s1{top:25px;left:8px;font-size:36px}.s2{right:0;bottom:75px;font-size:43px;color:#8c9d70}.auth-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 36px;gap:40px}.auth-card{width:100%;max-width:370px}.auth-card .mini-star{color:var(--red);font-size:30px}.auth-card h2{font-family:Georgia,serif;font-size:32px;font-weight:500;margin:16px 0 10px}.auth-card>p{font-size:13px}.segmented{display:flex;gap:4px;padding:4px;background:#eceee3;border-radius:10px;margin:26px 0}.segmented button{flex:1;border:0;border-radius:7px;padding:10px 5px;font-size:11px;font-weight:650;background:transparent;color:var(--muted)}.segmented button.active{background:#fffefa;color:var(--ink);box-shadow:0 2px 5px #183e350b}#auth-form{display:grid;gap:18px}#auth-submit{margin-top:5px}.auth-hint{display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);margin-top:28px;padding-top:20px}.auth-hint>span{font-size:26px;color:var(--red)}.auth-hint p{font-size:11px;line-height:1.6}.auth-local{font-size:10px;color:var(--muted)}.topbar{border-bottom:1px solid var(--line);background:#faf9f3}.topbar-inner{max-width:1200px;margin:auto;padding:23px 30px;display:flex;align-items:center;justify-content:space-between;gap:30px}.main-nav{display:flex;gap:28px}.nav-tab{border:0;background:none;padding:8px 0;font-size:12px;color:var(--muted);position:relative;font-weight:650}.nav-tab.active{color:var(--ink)}.nav-tab.active:after{content:"";height:2px;background:var(--green);position:absolute;bottom:-24px;left:0;right:0}.count{margin-left:4px;background:#e5eadb;padding:2px 5px;border-radius:4px;font-size:10px}.user-menu{display:flex;gap:16px;align-items:center;font-size:12px}.user-menu>span{font-weight:750}.user-menu .text-button{font-size:10px;color:var(--muted)}main{max-width:1200px;margin:auto;padding:0 30px}.welcome{display:flex;align-items:center;justify-content:space-between;padding:53px 0 42px;gap:30px}.welcome h1{font-family:Georgia,serif;font-size:clamp(31px,3.2vw,45px);font-weight:500;letter-spacing:-1.8px;margin:13px 0}.welcome p{font-size:13px}.welcome-stamp{width:104px;height:115px;flex-shrink:0;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px dashed #b3bfa8;outline:5px solid #eff0e4;outline-offset:3px;transform:rotate(8deg);background:#eff0e4;color:#7c8f6d}.welcome-stamp span{font-size:9px;letter-spacing:2px;font-weight:700}.welcome-stamp b{font-size:51px;line-height:1.1;font-weight:400;color:#8b9b79}.section-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.section-row h2{font-size:15px;letter-spacing:-.3px}.family{display:flex;gap:10px;overflow-x:auto;padding:3px 3px 11px;scrollbar-width:thin}.family-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:11px;padding:14px 18px;min-width:170px;background:#fffdf7;color:var(--ink);text-align:left}.family-card.active{border-color:var(--green);background:#edf1e5;box-shadow:0 0 0 1px var(--green)}.avatar{height:39px;width:39px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:700;background:#e6d5c9;color:#8a5141}.family-card:nth-child(3n+2) .avatar{background:#dce7d5;color:#507049}.family-card:nth-child(3n) .avatar{background:#eee1bd;color:#8d753a}.member-name{font-size:13px;font-weight:750}.member-note{font-size:10px;color:var(--muted);margin-top:4px}.list-section{padding-top:34px}.list-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.list-heading h2{font-family:Georgia,serif;font-size:32px;font-weight:500;letter-spacing:-1px;margin:7px 0}.list-heading p{font-size:12px}.filters{display:flex;align-items:center;gap:12px;margin:25px 0 23px}.search{position:relative;max-width:340px;flex:1}.search span{position:absolute;left:13px;top:11px;font-size:23px;color:#89907f;line-height:1}.search input{padding:11px 12px 11px 39px;font-size:12px;margin:0;border-radius:8px;background:#faf9f2}.occasion-filter{max-width:190px}.occasion-filter select{font-size:12px;padding:11px;margin:0;border-radius:8px;background:#faf9f2}.filters>.small{margin-left:auto;white-space:nowrap}.gift-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.gift-card{background:#fffefa;border:1px solid var(--line);border-radius:13px;overflow:hidden;display:flex;flex-direction:column;min-height:330px;transition:box-shadow .2s,transform .2s}.gift-card:hover{box-shadow:0 9px 25px #203d3010;transform:translateY(-2px)}.gift-art{height:125px;display:flex;align-items:center;justify-content:center;position:relative;background:#f0e6d8;color:#947959}.gift-card:nth-child(3n+2) .gift-art{background:#e7ecdf;color:#728963}.gift-card:nth-child(3n) .gift-art{background:#ede5dd;color:#a27b6a}.gift-art svg{width:66px;height:66px;transform:rotate(-8deg);opacity:.8;stroke:currentColor;fill:none;stroke-width:1.7}.gift-art:after{content:"✧";font-size:30px;position:absolute;left:24%;top:19px;opacity:.35}.occasion-badge{position:absolute;right:13px;top:13px;background:#fffdf8ba;color:#5b6655;border:1px solid #fffdf8;padding:4px 8px;border-radius:5px;font-size:9px;font-weight:650}.gift-body{padding:20px 20px 15px;display:flex;flex-direction:column;flex:1}.gift-title{font-size:17px;font-weight:750;line-height:1.4;letter-spacing:-.4px;overflow-wrap:anywhere}.gift-price{font-size:15px;font-weight:650;margin-top:9px;font-variant-numeric:tabular-nums}.gift-price.unset{font-size:11px;font-weight:400;color:var(--muted)}.gift-notes{font-size:11px;line-height:1.65;margin:10px 0;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.gift-priority{font-size:10px;color:#a85c43;font-weight:650;margin-top:9px}.gift-link{font-size:11px;font-weight:700;text-decoration:none;display:inline-block;margin-top:12px;align-self:flex-start}.gift-link:hover{text-decoration:underline}.gift-actions{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:18px}.gift-actions .button{min-height:35px;padding:8px 12px;font-size:10px;flex:1}.gift-actions .text-button{font-size:10px;color:var(--muted)}.reserved-label{font-size:11px;display:flex;align-items:center;gap:6px;color:var(--muted);background:#f0f0e8;border-radius:6px;padding:10px 12px;width:100%;justify-content:center}.reservation-owner{font-size:10px;color:var(--muted);margin-bottom:7px;text-transform:uppercase;letter-spacing:1px}.bought{color:#53784d;font-size:10px;font-weight:750}.empty{margin:20px 0;padding:50px 20px;border:1px dashed #d3d9c9;border-radius:12px;text-align:center;background:#f3f4e9}.empty-icon{font:49px Georgia;color:#8e9f77;line-height:1.3}.empty h3{font-family:Georgia,serif;font-size:27px;font-weight:500;margin:12px 0}.empty p{font-size:12px;max-width:390px;margin:auto}.empty .button{margin-top:22px}footer{margin-top:65px;border-top:1px solid var(--line);padding:23px 0 30px;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#929684}footer span:first-child{font-weight:700}dialog{border:1px solid #e1e4d8;border-radius:17px;padding:30px;width:min(540px,calc(100vw - 30px));max-height:90vh;overflow:auto;background:var(--paper);color:var(--ink);box-shadow:0 25px 90px #183e3530}dialog::backdrop{background:#182d25a1;backdrop-filter:blur(3px)}dialog h2{font-family:Georgia,serif;font-weight:500;font-size:28px;margin:6px 0 10px}dialog p{font-size:13px}#gift-form{display:grid;gap:18px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.icon-button{background:none;border:0;color:var(--muted);font-size:27px;padding:0 3px;line-height:1}.form-row{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:7px}.invite-code{font-family:ui-monospace,Consolas,monospace;font-size:27px;letter-spacing:3px;text-align:center;background:#eef0e4;border:1px dashed #b9c4ab;border-radius:10px;padding:20px 10px;margin:23px 0}#invite-dialog>.small{margin:18px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1500px){.auth-story{padding-left:15%}.auth-panel{padding-right:12%}}@media(max-width:950px){.gift-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-inner{gap:20px}.main-nav{gap:18px}.brand{font-size:17px}.brand-icon{font-size:27px}.topbar-inner{padding:20px}.main-nav .nav-tab{font-size:11px}.auth-story{padding:35px 30px}.story-content h1{font-size:46px}.letter-art{transform:scale(.9);transform-origin:center}}@media(max-width:650px){.auth{grid-template-columns:1fr}.auth-story{padding:25px}.story-content{padding:35px 0 0}.story-content h1{font-size:41px}.story-content p{font-size:13px;max-width:340px}.letter-art{display:none}.story-foot{display:none}.auth-panel{padding:35px 25px;gap:20px}.auth-card h2{font-size:28px}.auth-card>.mini-star{display:none}.topbar-inner{flex-wrap:wrap;padding:18px 20px;gap:14px}.user-menu{margin-left:auto}.main-nav{order:3;width:100%;gap:30px;padding-top:10px}.nav-tab.active:after{bottom:-18px}main{padding:0 20px}.welcome{padding:36px 0 30px}.welcome h1{font-size:33px;line-height:1.1;max-width:310px}.welcome-stamp{display:none}.welcome p{font-size:12px}.eyebrow{font-size:9px;letter-spacing:1.5px}.section-row h2{font-size:14px}.family-card{min-width:154px;padding:12px 14px;gap:10px}.avatar{width:34px;height:34px}.list-section{padding-top:25px}.list-heading h2{font-size:28px}.list-heading{align-items:flex-start}.list-heading .button{font-size:10px;min-height:38px;padding:10px 12px;white-space:nowrap;margin-top:8px}.filters{flex-wrap:wrap;gap:9px}.search{max-width:none;flex-basis:60%}.occasion-filter{max-width:160px;flex:1}.filters>.small{font-size:10px}.gift-grid{gap:13px}.gift-body{padding:16px 14px 13px}.gift-title{font-size:15px}.gift-art{height:105px}.gift-art svg{width:54px;height:54px}.gift-actions{flex-wrap:wrap}.gift-actions .text-button{flex-basis:100%;text-align:left}.gift-actions .button{white-space:nowrap}.gift-notes{font-size:11px}footer{flex-direction:column;gap:8px;margin-top:40px}dialog{padding:23px}.form-row{gap:12px}}@media(max-width:400px){.gift-grid{grid-template-columns:1fr}.gift-art{height:125px}.gift-actions .text-button{flex-basis:auto}.gift-card{min-height:300px}.list-heading h2{font-size:26px}.user-menu{gap:8px}}
/* Product search is deliberately text-only: no third-party image trackers. */
.product-search{padding:18px;background:#f3f1e8;border-radius:16px;margin-bottom:24px}.product-search h3{margin:0 0 8px}.product-result{padding:14px 0;border-top:1px solid #d8dece}.product-result h4{margin:0 0 8px}.product-result p{margin:6px 0}.product-result .button{margin:10px 0 0 12px}.product-search .form-row{align-items:end}#product-results{max-height:380px;overflow:auto}
.shopping-person{display:flex;justify-content:space-between;align-items:center;gap:24px;background:#fffdf7;border:1px solid #deded2;border-radius:18px;padding:20px;margin:12px 0}.shopping-person h3{margin:0}.shopping-person p{margin:8px 0 0}.shopping-person label{min-width:220px}#shopping-section>label{max-width:350px}#shopping-summary{font-weight:700;color:#183e35}@media(max-width:600px){.shopping-person{align-items:stretch;flex-direction:column;gap:12px}.main-nav{flex-wrap:wrap}.shopping-person label{min-width:0}}
