:root{--cream:#f8f6ef;--paper:#fffdf8;--ink:#223d33;--muted:#74786d;--green:#234b3d;--red:#aa493c;--line:#e4e3d8;--gold:#b58f55}*{box-sizing:border-box}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,a,input,textarea{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold)}button{color:inherit}a{color:var(--green)}button svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,Times New Roman,serif;font-weight:400}h1 em,h3 em{color:var(--red);font-weight:400}h1{letter-spacing:-2.5px;font-size:68px;line-height:1.08}p{line-height:1.65}fieldset{border:0;margin:0;padding:0}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1280px;min-height:103px;margin:auto;padding:0 52px;display:flex}.brand{letter-spacing:-.5px;background:0 0;border:0;align-items:center;gap:13px;padding:0;font-family:Georgia,serif;font-size:23px;display:flex}.brand em{font-style:normal}.brand-mark{background:var(--green);color:#fff5df;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.header-right{align-items:center;gap:30px;display:flex}.edition,.eyebrow,.card-kicker{letter-spacing:2px;font-size:11px;font-weight:600}.edition{color:var(--muted)}.login-layout{grid-template-columns:minmax(0,1.25fr) minmax(350px,1fr);align-items:center;gap:75px;max-width:1190px;margin:63px auto 64px;padding:0 52px;display:grid}.intro .eyebrow{color:var(--red);align-items:center;gap:10px;margin-bottom:24px;display:flex}.tiny-star{font-size:25px;font-weight:400;line-height:1}.lead{color:var(--muted);margin-top:23px;font-size:17px;line-height:1.7}.gift-art{width:100%;max-width:485px;margin-top:6px;margin-bottom:-8px;margin-left:-18px;display:block}.intro-bottom{color:var(--muted);justify-content:space-between;max-width:460px;font-size:11px;display:flex}.intro-bottom span:first-child{align-items:center;gap:7px;display:flex}.entry-card{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:38px 34px 28px;box-shadow:0 12px 36px #243d3305}.card-kicker{letter-spacing:1.6px;color:var(--muted);font-size:10px}.entry-card h2{letter-spacing:-.9px;margin:13px 0 8px;font-size:34px}.entry-card>p{color:var(--muted);margin-bottom:24px;font-size:14px}.name-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:26px;display:grid}.name-grid button{border:1px solid var(--line);background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:5px;min-height:45px;font-size:14px;transition:background .15s,border-color .15s;display:flex}.name-grid button:hover{background:#f0f1e8;border-color:#b0b9a7}.name-grid button.selected{color:var(--paper);background:var(--green);border-color:var(--green)}.field-label{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;display:flex}.field-label svg{color:var(--muted)}input,textarea{background:var(--paper);width:100%;color:var(--ink);border:1px solid #dcded3;border-radius:4px;min-width:0;padding:13px 12px;font-size:16px}input::placeholder,textarea::placeholder{color:#8b8e84;font-size:14px}.pin-input{letter-spacing:8px;height:51px}.pin-input::placeholder{letter-spacing:1px}.field-hint{color:var(--muted);margin-top:9px;font-size:11px;line-height:1.6}.primary,.cream-button,.outline-button{border:1px solid var(--green);border-radius:4px;justify-content:center;align-items:center;gap:13px;min-height:51px;padding:13px 24px;font-size:14px;font-weight:600;transition:transform .15s,background .15s;display:inline-flex}.primary{background:var(--green);color:#fffdf4}.primary:hover{background:#173d30}.primary.full{width:100%;margin-top:23px}.text-button{text-underline-offset:4px;background:0 0;border:0;padding:9px 0;font-size:13px;text-decoration:underline}.help-link{color:var(--muted);margin:9px auto 0;font-size:12px;display:block}.private-note{border-top:1px solid var(--line);color:var(--muted);justify-content:center;align-items:center;gap:11px;margin-top:22px;padding-top:22px;font-size:11px;line-height:1.6;display:flex}.private-note svg{flex-shrink:0}.preview-banner{text-align:center;color:#68532f;background:#eee5ce;padding:9px 15px;font-size:12px;line-height:1.5}.preview-banner strong{letter-spacing:1px}.logout{color:var(--muted);background:0 0;border:0;align-items:center;gap:7px;padding:10px;font-size:12px;display:flex}.nav{border-bottom:1px solid var(--line);gap:30px;max-width:1176px;margin:0 auto;display:flex}.nav button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:21px 0 18px;font-size:13px;display:flex}.nav button.active{border-bottom-color:var(--green);color:var(--green);font-weight:600}.content{max-width:1176px;margin:48px auto 70px}.page-heading{margin-bottom:32px}.page-heading .eyebrow{color:var(--red)}.page-heading h1{letter-spacing:-1.8px;margin-top:13px;font-size:51px}.page-heading p{color:var(--muted);margin-top:12px;font-size:15px}.home-grid{grid-template-columns:1.4fr 1fr;gap:25px;display:grid}.secret-card{background:var(--green);color:#fff6e1;text-align:center;border-radius:6px;padding:26px 30px 28px;position:relative;overflow:hidden}.secret-card:after{content:"✧";color:#ffffff18;font-family:Georgia,serif;font-size:70px;position:absolute;top:100px;right:38px}.secret-card:before{content:"✧";color:#fff2;font-family:Georgia,serif;font-size:35px;position:absolute;top:150px;left:64px}.secret-top{text-align:left;color:#d7ddc9;letter-spacing:1.8px;justify-content:space-between;font-size:10px;display:flex}.secret-top>span:first-child{align-items:center;gap:7px;display:flex}.secret-top>span:last-child{font-size:22px}.secret-card h2{letter-spacing:-.5px;font-size:32px}.secret-card p{color:#d3ddce;max-width:310px;margin:13px auto 22px;font-size:14px}.cream-button{color:var(--green);background:#f4ecd9;border-color:#f4ecd9;font-size:14px}.cream-button:hover{background:#fffaf0}.secret-foot{letter-spacing:.4px;color:#c4d0bd;margin-top:18px;font-size:10px;display:block}.present-drawing{width:124px;height:128px;margin:19px auto;position:relative}.present-box{background:#d7b781;border-radius:2px;width:88px;height:66px;position:absolute;bottom:0;left:18px;transform:rotate(-7deg)}.present-lid{z-index:2;background:#e8c99a;border-radius:2px;width:100px;height:19px;position:absolute;bottom:62px;left:12px;transform:rotate(-7deg)}.present-ribbon{z-index:3;background:#a94d3c;width:13px;height:85px;position:absolute;bottom:0;left:55px;transform:rotate(-7deg)}.ribbon-loop{border:6px solid #bd6851;border-radius:50% 50% 0;width:36px;height:28px;position:absolute;top:21px;left:25px;transform:rotate(12deg)}.ribbon-loop.right{left:57px;transform:scaleX(-1)rotate(25deg)}.home-side{flex-direction:column;gap:18px;display:flex}.budget-card{background:#eeeee3;border:1px solid #e3e5d7;border-radius:6px;flex:1;padding:28px 30px;position:relative}.budget-card h3{letter-spacing:-.8px;margin:17px 0 22px;font-size:37px;line-height:1.12}.budget{border-top:1px solid #d8decc;flex-direction:column;gap:8px;padding-top:19px;display:flex}.budget>span{color:var(--muted);font-size:11px}.budget strong{letter-spacing:-.6px;font-size:23px;font-weight:400}.budget small{letter-spacing:1px;font-size:10px}.budget-card p{color:var(--muted);margin-top:14px;font-size:12px}.leaf-decoration{color:#a2ab8c;font-family:Georgia;font-size:55px;position:absolute;top:58px;right:32px}.wish-shortcut{background:var(--paper);border:1px solid var(--line);text-align:left;border-radius:5px;align-items:center;gap:14px;padding:20px;display:flex}.round-icon{width:42px;height:42px;color:var(--red);background:#f2e8dd;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.wish-shortcut>span:nth-child(2){flex:1}.wish-shortcut strong{font-size:13px;font-weight:500;display:block}.wish-shortcut small{color:var(--muted);margin-top:6px;font-size:11px;display:block}.family-strip{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:35px;padding-top:37px;display:flex}.family-strip .eyebrow{color:var(--muted);font-size:9px}.family-strip h2{margin:10px 0 7px;font-size:28px}.family-strip p{color:var(--muted);font-size:13px}.outline-button{white-space:nowrap;background:0 0;border-color:#c7cdbd;font-size:12px}.outline-button:hover{background:#edeee3}.info-line{background:#eceee3;border:1px solid #dfe3d4;border-radius:4px;align-items:center;gap:10px;margin-bottom:26px;padding:14px 18px;font-size:13px;display:flex}.info-line svg{flex-shrink:0}.editor-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.wish-editor{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:24px}.wish-editor-title{align-items:center;gap:11px;margin-bottom:25px;display:flex}.wish-editor-title>span{color:var(--red);font-family:Georgia,serif;font-size:23px}.wish-editor h2{font-size:20px;line-height:1.2}.wish-editor>label{margin:18px 0 8px;font-size:12px;display:block}.wish-editor>label span{color:var(--muted);float:right;font-size:10px}.wish-editor textarea{resize:vertical;height:96px;font-size:14px}.wish-editor input{font-size:14px}.upload-area{margin-top:20px;position:relative}.upload-label{cursor:pointer;color:#7c8776;background:#f8f8f1;border:1px dashed #c7cebc;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:132px;display:flex}.upload-label strong{color:var(--ink);font-size:12px;font-weight:400}.upload-label span{font-size:9px}.file-input{opacity:0;border:0;width:1px;height:1px;padding:0;position:absolute;bottom:0}.upload-area:focus-within .upload-label{outline:3px solid var(--gold);outline-offset:3px}.uploaded{background:#f3f0e6;border-radius:4px;height:160px;position:relative}.uploaded img{object-fit:contain;width:100%;height:100%}.uploaded button{background:var(--paper);position:absolute;top:5px;right:5px}.save-bar{justify-content:space-between;align-items:center;gap:20px;margin-top:25px;display:flex}.save-bar>span{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.success{background:#e7efdf;border:1px solid #cbd8c0;border-radius:4px;align-items:center;gap:10px;margin-top:18px;padding:17px;font-size:14px;display:flex}.alert{color:#813b2f;background:#faeee7;border:1px solid #e4c4b7;border-radius:4px;margin-top:17px;padding:13px 15px;font-size:13px;line-height:1.6}.global-alert{margin:0 0 24px}.section-meta{color:var(--muted);justify-content:space-between;margin:0 0 20px;font-size:12px;display:flex}.people-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.person-card{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:25px;transition:transform .2s,border-color .2s}.person-card:hover{border-color:#a7b29d;transform:translateY(-3px)}.person-card-head{color:#a8ae9e;justify-content:space-between;align-items:center;display:flex}.avatar{color:#56624a;background:#e5e9dc;border-radius:50%;place-items:center;width:46px;height:46px;font-family:Georgia,serif;font-size:24px;display:grid}.tone-1{color:#b16450;background:#f2e3da}.tone-2{color:#a8884d;background:#eee6d2}.tone-3{color:#536e60;background:#e3e9e4}.person-card h2{align-items:center;gap:9px;margin:20px 0 7px;font-size:27px;display:flex}.person-card h2 small{color:#617453;background:#e8ecdf;border-radius:3px;padding:4px 6px;font:10px Arial,sans-serif}.person-card p{color:var(--muted);font-size:12px}.wish-dots{border-top:1px solid var(--line);align-items:center;gap:5px;margin-top:24px;padding-top:17px;display:flex}.wish-dots>span:not(.see-list){color:#d4d6ca;background:#f3f2ea;border-radius:50%;place-items:center;width:23px;height:23px;display:grid}.wish-dots>span.filled{color:#637b54;background:#e6ebdf}.wish-dots .see-list{color:var(--muted);margin-left:auto;font-size:11px}footer{border-top:1px solid var(--line);color:#888c7f;justify-content:space-between;align-items:center;gap:20px;max-width:1176px;margin:0 auto;padding:25px 0 30px;font-size:10px;display:flex}.footer-brand{align-items:center;gap:8px;display:flex}.footer-brand svg{color:var(--gold)}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:9px;width:min(500px,100% - 32px);max-height:85dvh;padding:29px;box-shadow:0 30px 100px #0e2d322a}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#142f286b}.modal-head{justify-content:space-between;align-items:center;gap:18px;margin-bottom:23px;display:flex}.modal-head h2{letter-spacing:-.5px;font-size:25px}.icon-btn{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.icon-btn:hover{background:#eceee3}dialog>p{color:var(--muted);margin:13px 0;font-size:14px}.reveal{text-align:center;padding-top:9px}.reveal-stars{color:var(--gold);justify-content:center;align-items:center;gap:35px;margin:10px 0 29px;display:flex}.reveal-stars svg{color:var(--red);animation:.6s ease-out appear}.reveal .eyebrow{color:var(--muted);font-size:10px}.reveal h3{color:var(--green);margin:14px 0 19px;font-size:67px;animation:.6s ease-out appear}.reveal p{color:var(--muted);font-size:14px}.reveal .text-button{color:var(--muted);margin-top:10px;font-size:12px}.wish-detail{border-top:1px solid var(--line);padding:22px 0}.wish-detail img{object-fit:contain;background:#f3f0e7;border-radius:5px;width:100%;max-height:210px;margin-bottom:20px}.wish-detail .eyebrow{color:var(--red);font-size:9px}.wish-detail h3{margin:10px 0;font-size:26px}.wish-detail p{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.shop-link{text-underline-offset:4px;align-items:center;gap:7px;margin-top:16px;font-size:13px;display:inline-flex}.empty-list{text-align:center;padding:24px 8px 30px}.empty-list>svg{color:var(--red);margin-bottom:20px}.empty-list h3{margin-bottom:13px;font-size:26px}.empty-list p{color:var(--muted);font-size:14px}.admin-list{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:0 25px}.admin-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.5fr 1fr 1fr;align-items:center;gap:15px;padding:20px 0;font-size:13px;display:grid}.admin-row:last-child{border-bottom:0}.admin-row>span{color:var(--muted);font-size:12px}.admin-row button{justify-self:end;font-size:12px}.new-code{letter-spacing:10px;text-align:center;background:#eceee3;border-radius:5px;margin:20px 0;padding:25px;font-size:36px}.loading{min-height:100vh;color:var(--green);flex-direction:column;justify-content:center;align-items:center;gap:25px;display:flex}.loading p{font-family:Georgia,serif;font-size:22px}.spin{animation:1s linear infinite spin}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@keyframes appear{0%{opacity:0;transform:translateY(12px)scale(.95)}to{opacity:1;transform:none}}@media (min-width:1400px){.login-layout{gap:100px;margin-top:75px;margin-bottom:75px}}@media (max-width:1260px){.content,.nav,footer{margin-left:52px;margin-right:52px}.login-layout{gap:45px}h1{font-size:59px}}@media (max-width:950px){.login-layout{grid-template-columns:1fr 1fr;gap:30px;padding:0 32px}.site-header{padding:0 32px}.entry-card{padding:28px 24px}h1{font-size:49px}.lead{font-size:15px}.content,.nav,footer{margin-left:32px;margin-right:32px}.editor-grid{grid-template-columns:1fr}.wish-editor{width:100%;max-width:620px;margin:auto;display:block}.wish-editor-title{margin-bottom:10px}.wish-editor input,.wish-editor textarea{font-size:16px}.people-grid{gap:14px}.person-card{padding:20px}.secret-card{padding:24px 20px}.budget-card{padding:25px}.budget strong{font-size:21px}.home-grid{gap:18px}.brand{font-size:21px}.edition{font-size:10px}}@media (max-width:700px){.site-header{min-height:81px;padding:0 22px}.brand{gap:10px;font-size:20px}.brand-mark{width:36px;height:36px}.brand em{letter-spacing:0;font-size:15px;line-height:1.1;display:block}.edition{letter-spacing:1.3px;font-size:8px}.header-right{gap:13px}.logout{padding:5px}.logout span{display:none}.login-layout{flex-direction:column;gap:24px;max-width:470px;margin:31px auto 35px;padding:0 22px;display:flex}.intro{width:100%;padding-right:0;position:relative}.intro .eyebrow{letter-spacing:1.5px;margin-bottom:17px;font-size:9px}h1{letter-spacing:-1.8px;font-size:46px}.lead{margin-top:16px;font-size:14px}.gift-art{opacity:.95;width:143px;margin:0;position:absolute;bottom:-10px;right:-10px}.intro .lead{padding-right:110px;font-size:12px}.desktop-break,.intro-bottom{display:none}.entry-card{width:100%;padding:27px 24px 24px}.entry-card h2{font-size:30px}.entry-card>p{margin-bottom:21px;font-size:14px}.name-grid button{min-height:48px;font-size:15px}.field-label{font-size:14px}.field-hint{font-size:12px}.primary,.cream-button{min-height:52px;font-size:14px}.private-note{font-size:12px}.help-link{font-size:13px}.card-kicker{font-size:9px}footer{flex-direction:column;gap:11px;margin:0 22px;padding:23px 0;font-size:10px}.nav{justify-content:space-between;gap:0;margin:0 22px}.nav button{gap:6px;padding:18px 2px 15px;font-size:11px}.nav button svg{width:16px}.content{margin:32px 22px 42px}.page-heading{margin-bottom:26px}.page-heading h1{font-size:43px}.page-heading .eyebrow{letter-spacing:1.6px;font-size:9px}.page-heading p{font-size:14px}.home-grid{grid-template-columns:1fr;gap:18px}.secret-card{padding:24px 23px 27px}.secret-card h2{font-size:30px}.secret-card p{font-size:14px}.secret-foot{font-size:11px}.present-drawing{margin:17px auto 24px}.budget-card{padding:25px}.budget-card h3{margin:13px 0 18px;font-size:34px}.budget-card h3 br{display:none}.budget{padding-top:16px}.budget strong{font-size:26px}.budget-card p{font-size:13px}.wish-shortcut{padding:20px}.wish-shortcut strong{font-size:14px}.wish-shortcut small{font-size:12px}.family-strip{margin-top:28px;padding-top:28px;display:block}.family-strip h2{font-size:27px}.family-strip p{font-size:14px}.family-strip .outline-button{width:100%;margin-top:21px;font-size:14px}.info-line{padding:13px;font-size:12px;line-height:1.6}.wish-editor{padding:22px}.wish-editor h2{font-size:23px}.wish-editor>label{font-size:14px}.wish-editor>label span{font-size:11px}.upload-label strong{font-size:13px}.upload-label span{font-size:10px}.save-bar{flex-direction:column-reverse;align-items:stretch;gap:15px}.save-bar>span{justify-content:center}.section-meta{gap:15px;font-size:10px}.people-grid{grid-template-columns:repeat(2,1fr);gap:12px}.person-card{padding:18px 15px}.avatar{width:38px;height:38px;font-size:22px}.person-card h2{margin-top:17px;font-size:26px}.person-card p{min-height:36px;font-size:11px}.wish-dots{gap:3px;margin-top:16px}.wish-dots>span:not(.see-list){width:18px;height:18px}.wish-dots .see-list,.person-card h2 small{font-size:9px}.admin-list{padding:0 17px}.admin-row{grid-template-columns:1fr 1fr;gap:10px}.admin-row>span{font-size:11px}.admin-row>strong{font-size:15px}.admin-row>span:nth-child(2){text-align:right}.admin-row button{font-size:12px}.preview-banner{font-size:10px}dialog{padding:23px}.modal-head h2{font-size:23px}.reveal h3{font-size:60px}.new-code{letter-spacing:7px;font-size:32px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.redraw-card{background:#f5ece4;border:1px solid #e5d0c2;border-radius:6px;justify-content:space-between;align-items:center;gap:28px;margin-bottom:28px;padding:25px;display:flex}.redraw-card h2{margin:10px 0;font-size:27px}.redraw-card p{color:var(--muted);max-width:600px;font-size:14px}.redraw-button{color:#873e32;white-space:normal;border-color:#bd8e7b;min-width:245px}.danger-button{background:#934336;border-color:#934336}.danger-button:hover{background:#783529}.full-cancel{margin:14px auto 0;display:block}.redraw-notice{margin:0 0 25px}@media (max-width:700px){.redraw-card{padding:23px;display:block}.redraw-card h2{font-size:25px}.redraw-button{width:100%;min-width:0;margin-top:20px}}
