@font-face{font-family:ChristmasSerif;src:url('/serif.ttf') format('truetype');font-display:swap;font-weight:100 900}
@font-face{font-family:ChristmasSans;src:url('/sans.ttf') format('truetype');font-display:swap;font-weight:100 900}
:root{--green:#193b31;--green-deep:#102c24;--red:#842b37;--gold:#b18a4d;--ivory:#f5f1e8;--paper:#fffcf5;--ink:#233b32;--muted:#6e7267;--line:#ded8c8;--serif:ChristmasSerif,Georgia,'Times New Roman',serif;--sans:ChristmasSans,Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ivory);color:var(--ink);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23b6a281' filter='url(%23n)' opacity='.25' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b18a4d;outline-offset:4px}a{color:inherit}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500}h1{font-size:clamp(50px,5.35vw,79px);line-height:1.02;letter-spacing:-2.5px}h1 em,h2 em{color:var(--red);font-weight:400}h2{font-size:36px;line-height:1.15;letter-spacing:-.7px}h3{font-size:25px;line-height:1.2}p{color:var(--muted)}.icon{width:21px;height:21px;flex-shrink:0;vertical-align:middle}.top-border{height:6px;background:repeating-linear-gradient(110deg,var(--red) 0 17px,var(--ivory) 17px 22px,var(--green) 22px 39px,var(--ivory) 39px 44px)}
.masthead{max-width:1400px;margin:auto;min-height:115px;padding:26px 64px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);position:relative;z-index:3}.brand{text-decoration:none;display:flex;align-items:center;gap:14px;white-space:nowrap;font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:1.5px;line-height:1.25}.brand small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:2.5px;margin-top:7px;color:var(--muted)}.brand-star{font-size:51px;color:var(--gold);line-height:1}.nav-note{font-size:9px;letter-spacing:2px;color:var(--muted)}#navigation{margin-left:auto;display:flex;align-items:center;gap:23px}.nav-item{border:none;background:none;padding:11px 0;font-size:12px;position:relative;white-space:nowrap}.nav-item.active{color:var(--red)}.nav-item.active:after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:var(--red)}.motion-button{border:1px solid var(--line);background:transparent;width:35px;height:35px;border-radius:50%;font-size:22px;color:var(--gold);display:grid;place-items:center;flex-shrink:0}.motion-button:hover{background:#eae2d3}.icon-button{display:inline-grid;place-items:center;border:none;background:transparent;min-width:36px;min-height:36px;padding:7px;border-radius:50%;color:var(--muted)}.icon-button:hover{color:var(--red);background:#ece3d7}
.welcome{position:relative;max-width:1360px;margin:auto;padding:72px 80px 50px;display:grid;grid-template-columns:1fr 1.04fr;gap:30px;overflow:hidden}.welcome-copy{z-index:2;padding-top:24px}.eyebrow{font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:2.3px;color:var(--gold);text-transform:uppercase;display:flex;align-items:center;gap:14px;margin-bottom:20px}.eyebrow>span:empty{width:26px;height:1px;background:var(--gold)}.welcome h1{margin-bottom:23px}.intro{max-width:365px;font-size:14px;line-height:1.9}.auth-form{max-width:364px;margin-top:28px}.auth-form label{margin-bottom:14px}.auth-form .button{width:100%;margin-top:3px;justify-content:space-between}.auth-form .help{margin:17px auto 0;display:block;font-size:11px}.auth-form .tiny{text-align:center;margin-top:12px}label{display:block;font-size:11px;font-weight:600;letter-spacing:.2px;margin-bottom:18px}input:not([type=checkbox]),textarea,select{display:block;width:100%;padding:12px 14px;background:#fffcf680;border:1px solid #d8d1c1;border-radius:3px;color:var(--ink);margin-top:7px;font-size:13px;min-height:46px;font-weight:400;transition:border-color .2s,box-shadow .2s}input::placeholder,textarea::placeholder{color:#99958a}textarea{resize:vertical;line-height:1.7}input:hover,textarea:hover,select:hover{border-color:var(--gold)}input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px #b18a4d12}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}.check-label{display:flex;align-items:center;gap:9px;font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:47px;padding:12px 22px;border-radius:3px;border:1px solid transparent;font-size:11px;font-weight:600;letter-spacing:.35px;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s}.button:hover:not(:disabled){transform:translateY(-2px)}.button.primary{background:var(--green);color:#fff9e9;box-shadow:0 4px 12px #193b3110}.button.primary:hover:not(:disabled){background:var(--green-deep);box-shadow:0 7px 18px #193b3126}.button.secondary{background:transparent;color:var(--green);border-color:#c9c3b3}.button.secondary:hover{background:#eee8da}.button.danger{background:#f3e2df;color:#792531;border-color:#dfbfc1}.text-button{background:none;border:none;padding:0;font-size:12px;color:var(--green);text-decoration:none;text-underline-offset:5px;display:inline-flex;gap:9px;align-items:center}.text-button:hover{text-decoration:underline;color:var(--red)}.text-button .icon{width:17px}.privacy-line{margin-top:25px;font-size:9px;color:var(--muted);display:flex;align-items:center;gap:7px}.privacy-line .icon{width:13px;height:13px}.form-error{font-size:12px;color:#a32b38;line-height:1.5;margin:8px 0}.form-error:empty{display:none}.invite-user{font-size:12px;margin-bottom:20px}.tiny{font-size:11px}.muted{color:var(--muted)}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}
.welcome-art{position:relative;align-self:center;margin-top:-25px;min-width:0}.christmas-art{width:112%;max-width:none;margin-left:-4%;display:block;mix-blend-mode:multiply;animation:artFloat 8s ease-in-out infinite;mask-image:linear-gradient(to bottom,transparent,black 6%,black 96%,transparent)}.art-halo{position:absolute;inset:15% 0 15%;background:radial-gradient(ellipse,#d9b66f1c,transparent 65%);animation:glow 5s ease-in-out infinite}.art-caption{font-family:var(--serif);font-style:italic;font-size:19px;text-align:center;margin:12px 0 0 30px;color:#7e6b4c}.round-stamp{position:absolute;bottom:9%;right:-7px;border:1px solid var(--gold);outline:1px solid #b18a4d80;outline-offset:5px;border-radius:50%;width:104px;height:104px;color:var(--gold);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;transform:rotate(14deg);background:#f5f1e8c4}.round-stamp span{font-size:6px;letter-spacing:1.1px}.round-stamp .icon{width:26px;height:26px}.hanging-star{position:absolute;color:var(--gold);font-size:45px;top:4%;animation:sway 6s ease-in-out infinite;transform-origin:top}.star-one{left:4%;top:18%;font-size:38px}.star-two{right:3%;font-size:23px;animation-delay:-3s}.garland{position:absolute;left:32%;right:-65px;top:-21px;pointer-events:none;z-index:1;height:120px}.garland img{width:100%;height:130px;object-fit:cover;object-position:top}.light{position:absolute;width:5px;height:7px;border-radius:50%;background:#ffecb9;box-shadow:0 0 7px 3px #ffce7080;animation:twinkle 3s ease-in-out infinite}.l1{left:19%;top:23px}.l2{left:40%;top:52px;animation-delay:1s}.l3{left:62%;top:68px;animation-delay:2s}.l4{left:79%;top:39px;animation-delay:1.5s}.l5{left:95%;top:18px;animation-delay:.5s}.how-it-works{max-width:1200px;margin:0 auto 55px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.how-it-works>div{padding-left:37px;position:relative}.how-it-works>div+div{border-left:1px solid var(--line);padding-left:62px}.step-number{font-size:10px;color:var(--gold);letter-spacing:1px;position:absolute;left:0;top:5px}.how-it-works>div+div .step-number{left:25px}.how-it-works h3{font-size:23px;margin-bottom:8px}.how-it-works p{font-size:11px}
footer{max-width:1240px;margin:0 auto;padding:25px 10px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#817d70;font-size:8px;letter-spacing:1.5px}footer>span:first-child{font-family:var(--serif);font-size:15px;font-style:italic;letter-spacing:0}.footer-star{font-size:25px;color:var(--gold)}.page-wrap{max-width:1230px;padding:49px 35px 30px;margin:auto;animation:pageIn .5s ease}.page-wrap.narrow{max-width:1050px}.page-intro{display:flex;justify-content:space-between;align-items:center;gap:35px;margin:15px 0 42px}.page-intro h1{font-size:61px;line-height:1.05}.page-intro p{margin-top:17px;font-size:13px}.page-intro .eyebrow{margin-bottom:16px}.countdown{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:145px;height:145px;border:1px solid var(--line);border-radius:50%;outline:1px solid #b18a4d35;outline-offset:7px;margin-right:35px;transform:rotate(6deg)}.countdown strong{font-family:var(--serif);font-size:59px;font-weight:400;line-height:1;color:var(--red)}.countdown span{font-size:7px;letter-spacing:1.5px;text-align:center;margin-top:6px}.countdown i{position:absolute;right:-20px;top:10px;font-size:27px;color:var(--gold);background:var(--ivory);font-style:normal;animation:twinkle 4s infinite}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(270px,1fr);gap:30px}.paper-panel{background:var(--paper);border:1px solid var(--line);border-radius:4px;box-shadow:0 5px 20px #47371104}.recipient-panel{padding:32px;position:relative;overflow:hidden;min-height:520px}.recipient-panel:before,.recipient-panel:after{position:absolute;content:'✧';font-size:21px;color:var(--gold);top:12px;left:17px}.recipient-panel:after{right:17px;left:auto}.envelope-message{text-align:center;display:flex;flex-direction:column;align-items:center;padding:18px 8px 12px}.envelope-message>.icon{height:60px;width:60px;color:var(--gold);margin:45px 0 25px}.envelope-message h2{margin:15px 0}.envelope-message p{font-size:12px;line-height:1.85;max-width:390px}.envelope-message .button{margin:25px 0 13px}.envelope-message .tiny{font-size:10px}.envelope-message .eyebrow{font-size:8px;margin:20px 0 0}.envelope{width:260px;height:170px;position:relative;margin:25px 0 10px;transform:rotate(-6deg);filter:drop-shadow(0 14px 11px #4a382b20);animation:letterFloat 6s ease-in-out infinite}.envelope-back{position:absolute;inset:0;background:#e6d9bc;border-radius:3px}.envelope-letter{position:absolute;width:88%;height:150px;left:6%;top:8px;background:#fffdf4;border:1px solid #dacdaa;text-align:center;padding:27px 10px;font-family:var(--serif);font-size:24px;z-index:1;transition:transform .7s ease .2s}.envelope-letter em{color:var(--red);font-size:19px}.envelope-front{position:absolute;inset:0;z-index:3;background:linear-gradient(32deg,#ebdfc6,transparent 51%),linear-gradient(-32deg,#eee1c5,transparent 51%);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);background-color:#f0e3c7;border:1px solid #d8c6a2;border-radius:3px}.envelope-flap{position:absolute;inset:0;z-index:4;background:linear-gradient(#f6ebd3,#e6d8b9);clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top;transition:transform .65s,filter .65s}.wax-seal{position:absolute;top:68px;left:107px;width:48px;height:48px;border-radius:44% 48% 43% 46%;background:radial-gradient(circle at 40% 30%,#ad4a4e,#7d2431 75%);border:3px solid #973742;box-shadow:inset 0 0 0 2px #b4535660,0 4px 6px #5c1e3230;z-index:5;color:#d88d75;font-size:31px;line-height:40px;transition:transform .4s,opacity .4s}.envelope-sprig{position:absolute;right:-34px;bottom:-21px;font-size:113px;color:#425e3a;z-index:6;transform:rotate(-30deg);text-shadow:2px 3px #e1d6bd}.unsealing .envelope{animation:none}.unsealing .wax-seal{transform:scale(1.3) rotate(20deg);opacity:0}.unsealing .envelope-flap{transform:rotateX(180deg);filter:brightness(.94);z-index:0}.unsealing .envelope-letter{transform:translateY(-55px)}.pill{display:inline-flex;align-items:center;gap:7px;background:#f0e8d6;border:1px solid #ded0af;padding:6px 11px;border-radius:30px;color:#917342;font-size:8px;letter-spacing:1px;margin-top:20px;white-space:nowrap}.pill.green{background:#e7eee6;color:#36513a;border-color:#c5d4c2}.pill .icon{width:13px;height:13px}.green-card{position:relative;background:var(--green);color:#f8f1de;padding:30px;border:1px solid #345346;outline:1px solid #b18a4d42;outline-offset:-8px;border-radius:4px;overflow:hidden}.card-topline{font-size:7px;letter-spacing:1.7px;display:flex;align-items:center;justify-content:space-between;color:#c1ac7a}.green-card h2{font-size:36px;margin:25px 0}.green-card h2 em{color:#d4bf8a}.green-card dl{position:relative;z-index:1}.green-card dl>div{padding:13px 0;border-top:1px solid #ffffff1a}.green-card dt{font-size:10px;color:#c6d1c3;display:flex;gap:10px;align-items:center}.green-card dt .icon{width:15px;height:15px;color:#c1ac7a}.green-card dd{margin:5px 0 0 25px;font-family:var(--serif);font-size:21px}.host-note{font-family:var(--serif);font-style:italic;font-size:16px;color:#d3d8c6;border-top:1px solid #ffffff1a;padding-top:16px;position:relative;z-index:1}.pine-watermark{font-size:210px;position:absolute;right:-43px;bottom:-88px;transform:rotate(-35deg);opacity:.06}.wish-reminder{padding:29px 18px 10px}.wish-reminder .eyebrow{font-size:8px;margin-bottom:11px}.wish-reminder h3{font-size:29px}.wish-reminder p{font-size:11px;margin:12px 0 16px}.below-note{display:flex;align-items:center;justify-content:center;gap:9px;font-size:9px;margin:25px 0}.below-note .icon{width:13px;height:13px}.recipient-open{animation:pageIn .8s ease;padding:15px 0}.recipient-open>.eyebrow{justify-content:center;font-size:8px;margin-bottom:14px}.recipient-open>h2{text-align:center;font-size:60px;color:var(--red);overflow-wrap:anywhere}.recipient-intro{text-align:center;font-family:var(--serif);font-size:16px;margin-top:8px}.ornament-divider{display:flex;align-items:center;gap:15px;justify-content:center;color:var(--gold);margin:22px 0}.ornament-divider:before,.ornament-divider:after{content:'';height:1px;width:55px;background:var(--line)}.recipient-note{padding:18px;background:#f1eddf;margin-bottom:30px}.recipient-note .eyebrow{margin-bottom:8px;font-size:7px}.recipient-note p{font-size:12px}.hide-secret{display:flex;margin:25px auto 0;font-size:10px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.section-heading p{font-size:12px;margin-top:8px}.section-heading>span{font-size:10px;color:var(--muted)}.section-heading .pill{margin-top:0}.section-heading h3{font-size:24px}.section-heading h2{font-size:32px}
.wish-card{display:flex;align-items:flex-start;gap:18px;padding:23px;background:#fffcf5;border:1px solid var(--line);border-radius:3px;position:relative}.wish-card+.wish-card{margin-top:12px}.wish-number{font-size:9px;color:var(--gold);line-height:30px;min-width:20px}.wish-card>div{flex:1;min-width:0}.wish-card h3{font-size:25px;overflow-wrap:anywhere}.wish-card p{font-size:12px;line-height:1.8;margin-top:9px}.product-link{display:inline-flex;align-items:center;gap:8px;font-size:10px;margin-top:13px;text-underline-offset:4px;color:var(--red)}.product-link .icon{width:14px;height:14px}.wish-list>.wish-card{padding:28px 32px}.empty-state{text-align:center;padding:45px 28px;border:1px dashed #d9cfb7;background:#fbf7ec77;border-radius:3px}.empty-state>.icon{width:33px;height:33px;color:var(--gold);margin-bottom:14px}.empty-state h3{font-size:28px;margin-bottom:12px}.empty-state p{font-size:12px;max-width:400px;margin:0 auto;line-height:1.8}.empty-state .button{margin-top:25px}.preferences{padding:32px;margin-top:30px}.preferences h2{font-size:32px;margin-bottom:13px}.preferences p{font-size:12px;margin-bottom:20px}.preferences .eyebrow{margin-bottom:13px}.preferences form .button{margin-top:16px}.organiser-stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #b18a4d73;outline:1px solid #b18a4d40;outline-offset:5px;width:118px;height:118px;border-radius:50%;color:var(--gold);transform:rotate(12deg);margin-right:30px}.organiser-stamp .icon{width:33px;height:33px;margin-bottom:10px}.organiser-stamp span{text-align:center;font-size:8px;letter-spacing:1.3px}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;margin-bottom:35px}.stats-strip>div{text-align:center;border-right:1px solid var(--line)}.stats-strip>div:last-child{border:none}.stats-strip strong{font-family:var(--serif);display:block;font-size:37px;font-weight:400;line-height:1.2}.stats-strip .status-word{font-size:30px;color:var(--red);line-height:1.48}.stats-strip span{font-size:7px;color:var(--muted);letter-spacing:1.4px}.admin-tabs{display:flex;gap:35px;margin-bottom:20px;border-bottom:1px solid var(--line)}.admin-tabs button{padding:0 0 15px;border:none;background:none;font-size:11px;color:var(--muted);position:relative}.admin-tabs button.active{color:var(--red)}.admin-tabs button.active:after{content:'';position:absolute;bottom:-1px;height:2px;left:0;right:0;background:var(--red)}.admin-panel{padding:32px;min-height:350px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:400;padding:13px 10px;border-bottom:1px solid var(--line)}td{padding:20px 10px;border-bottom:1px solid #eae5d9;font-size:11px}.person{display:flex;align-items:center;gap:12px}.avatar{height:35px;width:35px;display:grid;place-items:center;background:#e8e4d7;color:var(--green);font-family:var(--serif);font-size:20px;border-radius:50%}.person strong{font-weight:500;font-size:12px}.person small{display:block;color:var(--muted);font-size:9px}.person .admin-label{display:inline-block;font-size:6px;margin-left:5px;letter-spacing:.8px;color:var(--gold)}.status{font-size:9px;color:#97743b;display:flex;align-items:center;gap:7px}.status:before{content:'';width:5px;height:5px;border-radius:50%;background:#c7a25c}.status.joined{color:#466c48}.status.joined:before{background:#79976d}.row-actions{text-align:right}.row-actions .text-button{font-size:9px}.row-actions .icon{width:15px;height:15px}.toggle{margin:0;display:inline-flex;align-items:center;position:relative;width:32px;height:19px}.toggle input{position:absolute;opacity:0;width:100%;height:100%;z-index:1;margin:0;cursor:pointer}.toggle span{display:block;width:32px;height:19px;background:#d2cbbd;border-radius:20px;transition:background .2s}.toggle span:before{content:'';display:block;position:absolute;width:13px;height:13px;background:white;top:3px;left:3px;border-radius:50%;transition:transform .2s}.toggle input:checked+span{background:#496d52}.toggle input:checked+span:before{transform:translateX(13px)}.toggle input:focus-visible+span{outline:3px solid var(--gold);outline-offset:4px}.toggle input:disabled+span{opacity:.5}.info-note{display:flex;gap:12px;align-items:flex-start;font-size:11px;color:var(--muted);background:#f1eddf;padding:16px 18px;margin-top:25px}.info-note .icon{width:17px;height:17px;color:var(--gold);margin-top:2px}.draw-options{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:30px}.choice-card{border:1px solid var(--line);background:#f9f6ed;padding:25px;text-align:left;display:flex;flex-direction:column;gap:11px;border-radius:3px;transition:all .2s}.choice-card>.icon{color:var(--gold);width:26px;height:26px}.choice-card strong{font-family:var(--serif);font-size:25px;font-weight:400}.choice-card>span{font-size:11px;color:var(--muted)}.choice-card.selected{border-color:var(--green);background:#eef1e7;box-shadow:inset 0 0 0 1px var(--green)}.draw-box{display:flex;align-items:center;gap:20px;background:#f3eddf;padding:23px;border-radius:3px}.draw-box>.icon{color:var(--gold);width:30px;height:30px}.draw-box>div{flex:1}.draw-box h3{font-size:24px}.draw-box p{font-size:11px;margin-top:8px}.exclusions{margin-top:35px;border-top:1px solid var(--line);padding-top:30px}.inline-form{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.inline-form>label{flex:1;min-width:150px;margin-bottom:0}.inline-form>.check-label{flex:0 0 auto;min-width:100px;font-size:10px;align-self:center;margin-top:25px}.inline-form>.form-error{flex-basis:100%}.rule-list{margin-top:25px;display:flex;flex-wrap:wrap;gap:10px}.rule-chip{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:30px;font-size:10px;padding:0 4px 0 15px}.rule-chip .icon-button{min-width:28px;min-height:28px;font-size:18px;padding:3px}.pair-row{display:flex;align-items:center;gap:20px;padding:16px 20px;margin:0;border-bottom:1px solid var(--line);font-size:14px}.pair-row>span:first-child{flex:1}.pair-row>span:nth-last-child(1){flex:1;display:flex;align-items:center;gap:10px}.pair-row>.icon{color:var(--gold);width:17px}.pair-row .icon{color:var(--gold)}.pair-row select{max-width:45%;margin:0}.pair-row .text-button{font-size:10px;margin-left:auto;white-space:nowrap}.pair-row>span.recipient-name{flex:1;display:flex;gap:9px}.manual-pairs{margin-bottom:25px}.danger-note{display:flex;align-items:center;gap:25px;border-top:1px solid var(--line);padding-top:30px;margin-top:35px}.danger-note>div{flex:1}.danger-note h3{font-size:24px}.danger-note p{font-size:11px;max-width:500px;margin-top:8px}.settings-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:60px}.settings-layout h2{font-size:33px;margin-bottom:15px}.settings-layout p{font-size:12px;max-width:300px}.settings-layout .eyebrow{font-size:8px}.settings-layout form p{max-width:none}.swap-preview{padding:16px;background:#f0ebdf;margin:20px 0;font-size:13px}.swap-preview p+p{margin-top:10px}
dialog{border:1px solid var(--line);border-radius:5px;padding:38px;max-width:490px;width:calc(100% - 32px);color:var(--ink);background:var(--paper);box-shadow:0 25px 90px #102c2440;animation:pageIn .25s ease}dialog::backdrop{background:#102c2470;backdrop-filter:blur(4px)}dialog .eyebrow{font-size:8px;margin-bottom:16px}dialog h2{font-size:35px;margin-right:10px;margin-bottom:18px}dialog>p{font-size:12px;margin:14px 0 23px}dialog form{margin-top:25px}dialog .button{margin-top:5px}.dialog-close{position:absolute;right:9px;top:7px;font-size:25px}.loading{padding:130px 30px;text-align:center;font-family:var(--serif);font-size:24px}.loading-star{display:block;font-size:60px;color:var(--gold);animation:twinkle 2s infinite}.loading p{margin-top:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,25px);opacity:0;background:var(--green);color:#fff7e5;padding:14px 24px;border:1px solid #b18a4d60;box-shadow:0 5px 30px #102c2430;border-radius:4px;font-size:12px;z-index:100;max-width:90vw;width:max-content;pointer-events:none;transition:.25s}#toast.visible{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.snow{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:20}.flake{position:absolute;top:-30px;color:#fffaf0;font-style:normal;font-size:12px;text-shadow:0 0 2px #a7906733;animation:snowfall 18s linear infinite;opacity:.7}.celebration{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.spark{font-style:normal;color:#b18a4d;position:absolute;top:42%;left:50%;font-size:22px;animation:burst 2.5s ease-out forwards}.still *, .still *:before, .still *:after{animation:none!important;scroll-behavior:auto!important}.still .snow,.still .celebration{display:none}.still .envelope-letter,.still .envelope-flap,.still .wax-seal{transition:none!important}
@keyframes snowfall{0%{transform:translate3d(0,-40px,0) rotate(0);opacity:0}7%{opacity:.7}90%{opacity:.7}100%{transform:translate3d(90px,105vh,0) rotate(180deg);opacity:0}}@keyframes twinkle{0%,100%{opacity:.35;filter:brightness(.85)}50%{opacity:1;filter:brightness(1.2)}}@keyframes sway{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}@keyframes artFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes letterFloat{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-6px) rotate(-4deg)}}@keyframes glow{0%,100%{opacity:.6}50%{opacity:1}}@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes burst{0%{transform:translate(0,0) scale(.3);opacity:0}15%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(180deg);opacity:0}}
@media(min-width:1500px){.welcome{padding-top:85px;padding-bottom:65px}.welcome-art{margin-top:0}.christmas-art{width:112%}}@media(max-width:1100px){.masthead{padding:23px 35px}.brand{font-size:17px}.brand small{font-size:7px;letter-spacing:2px}#navigation{gap:16px}.welcome{padding:65px 45px 50px}.welcome h1{font-size:64px}.welcome-art{margin-left:-15px}.round-stamp{right:-10px;bottom:5%;width:85px;height:85px}.round-stamp span{font-size:5px}.how-it-works{margin-left:35px;margin-right:35px}.dashboard-grid{gap:20px}.green-card{padding:25px}.page-intro h1{font-size:56px}.admin-panel{padding:25px}.draw-box{flex-wrap:wrap}.draw-box .button{margin-left:50px}.section-heading h2{font-size:28px}.person .admin-label{display:block;margin:3px 0 0}.settings-layout{gap:35px}footer{padding-left:35px;padding-right:35px}.nav-note{font-size:7px}.privacy-line{font-size:8px}}
@media(max-width:800px){.masthead{flex-wrap:wrap;padding:20px 24px;gap:12px;min-height:98px}.brand{font-size:17px}.brand-star{font-size:42px}.brand small{font-size:6px}#navigation{order:3;width:100%;justify-content:center;gap:23px;margin-top:7px}#navigation:has(.nav-note){display:none}.motion-button{margin-left:auto}.masthead:has(.nav-item){padding-bottom:10px}.nav-item{font-size:11px}#navigation .icon-button{min-width:28px;min-height:28px;padding:3px}.welcome{padding:50px 30px 30px;grid-template-columns:1fr 1fr;gap:0}.welcome h1{font-size:52px;letter-spacing:-1.7px}.intro{font-size:12px}.auth-form{max-width:320px}.welcome-art{margin-left:-15px;margin-right:-20px}.christmas-art{width:116%;margin-left:-7%}.art-caption{font-size:15px}.round-stamp{display:none}.garland{left:45%;right:-120px}.privacy-line{font-size:7px}.how-it-works{margin:10px 30px 30px;gap:15px;padding:25px 0}.how-it-works>div{padding-left:25px}.how-it-works>div+div{padding-left:32px}.how-it-works>div+div .step-number{left:10px}.how-it-works h3{font-size:19px}.how-it-works p{font-size:10px}.page-wrap{padding:30px 24px}.page-intro{margin:8px 0 30px}.page-intro h1{font-size:48px;letter-spacing:-1.6px}.page-intro p{font-size:12px}.countdown{width:115px;height:115px;margin-right:10px;flex-shrink:0}.countdown strong{font-size:46px}.countdown span{font-size:6px}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.recipient-panel{min-height:500px}.green-card h2{font-size:30px}.card-topline{font-size:6px}.wish-reminder{padding:30px 15px}.below-note{font-size:8px;text-align:center}.organiser-stamp{width:90px;height:90px;margin-right:5px;flex-shrink:0}.organiser-stamp span{font-size:6px}.organiser-stamp .icon{width:25px;height:25px}.admin-panel{padding:23px}.section-heading{align-items:flex-start}.section-heading .button{white-space:nowrap;padding:10px 13px;font-size:10px}.settings-layout{grid-template-columns:1fr;gap:30px}.settings-layout p{max-width:none}.stats-strip span{font-size:6px;letter-spacing:1px}.draw-options{gap:12px}.choice-card{padding:20px}.choice-card strong{font-size:23px}.danger-note{align-items:flex-start;flex-direction:column;gap:15px}.pair-row{padding:15px 5px;gap:12px;font-size:12px}.pair-row .text-button{font-size:9px}.page-intro>.button{padding:12px;white-space:nowrap;font-size:10px}.inline-form>.check-label{flex:1}.inline-form>.button{min-width:120px}.snow{opacity:.65}}
@media(max-width:560px){.welcome{padding:50px 25px 22px;display:flex;flex-direction:column}.welcome-copy{padding-top:0}.welcome .eyebrow{font-size:8px;letter-spacing:1.8px}.welcome h1{font-size:58px;line-height:1;max-width:360px}.intro{max-width:320px;font-size:12px}.auth-form{max-width:none;margin-top:25px}.auth-form label{font-size:11px}.privacy-line{font-size:8px;justify-content:center}.welcome-art{margin:15px auto -7px;width:80%;max-width:360px}.christmas-art{width:100%;margin-left:0}.art-caption{margin:2px 0 20px;font-size:16px}.hanging-star{font-size:26px}.star-two{font-size:18px}.garland{left:32%;right:-150px;height:80px;top:-26px;opacity:.8}.garland img{height:95px}.how-it-works{grid-template-columns:1fr;gap:0;margin:0 25px 10px;padding:0}.how-it-works>div,.how-it-works>div+div{border:none;padding:23px 0 23px 40px}.how-it-works>div+div{border-top:1px solid var(--line)}.how-it-works .step-number,.how-it-works>div+div .step-number{left:7px;top:27px}.how-it-works h3{font-size:23px;margin-bottom:7px}.how-it-works p{font-size:11px}footer{padding:20px 25px;flex-wrap:wrap;gap:13px;justify-content:center}footer>span:first-child{flex-basis:100%;text-align:center;font-size:14px}.footer-star{display:none}.page-wrap{padding:27px 18px 12px}.page-intro{gap:15px}.page-intro h1{font-size:43px}.page-intro .eyebrow{font-size:7px;letter-spacing:1.6px;margin-bottom:12px}.page-intro p{font-size:11px;line-height:1.7;max-width:280px}.countdown{width:86px;height:86px;margin-right:3px;outline-offset:4px}.countdown strong{font-size:36px}.countdown span{font-size:5px;letter-spacing:.7px}.countdown i{font-size:20px;right:-10px}.recipient-panel{padding:28px 18px}.envelope-message{padding-left:0;padding-right:0}.envelope{transform:scale(.88) rotate(-6deg);width:240px;height:160px}.wax-seal{left:96px;top:61px}.envelope-message h2{font-size:31px}.envelope-message p{font-size:11px}.envelope-message .eyebrow{font-size:6px;letter-spacing:1.5px}.envelope-message .tiny{font-size:9px}.dashboard-grid>aside{grid-template-columns:1fr}.green-card{padding:28px}.green-card h2{font-size:36px}.green-card dl{display:flex;gap:20px}.green-card dl>div{flex:1}.green-card dd{font-size:20px}.wish-reminder{padding:15px 15px 10px}.wish-reminder h3 br{display:none}.wish-reminder h3{font-size:29px}.recipient-open>h2{font-size:48px}.recipient-intro{font-size:14px}.recipient-open>.eyebrow{font-size:6px}.section-heading h3{font-size:23px}.section-heading>span{font-size:8px}.wish-card{padding:20px 15px;gap:10px}.wish-card h3{font-size:23px}.wish-card p{font-size:11px}.wish-list>.wish-card{padding:22px 18px}.page-wrap.narrow .page-intro{flex-wrap:wrap}.page-wrap.narrow .page-intro>.button{font-size:11px;padding:12px 18px}.preferences{padding:24px}.preferences h2{font-size:30px}.organiser-stamp{display:none}.stats-strip{padding:18px 0;margin-bottom:25px}.stats-strip strong{font-size:30px}.stats-strip .status-word{font-size:23px;line-height:1.55}.stats-strip span{font-size:5px;letter-spacing:.6px}.admin-tabs{gap:22px}.admin-tabs button{font-size:10px}.admin-panel{padding:22px 16px}.admin-panel>.section-heading{flex-direction:column;gap:18px}.admin-panel>.section-heading h2{font-size:29px}.admin-panel>.section-heading p{font-size:11px}.draw-options{grid-template-columns:1fr}.choice-card{padding:20px}.choice-card strong{font-size:25px}.choice-card span{font-size:10px}.draw-box{padding:20px 15px;gap:12px}.draw-box>.icon{width:24px;height:24px}.draw-box h3{font-size:23px}.draw-box p{font-size:10px}.draw-box .button{margin-left:0;width:100%}.exclusions .section-heading h3{font-size:26px}.inline-form{gap:13px}.inline-form>label{flex-basis:100%}.inline-form>.check-label{flex-basis:45%;margin-top:0;min-width:0}.inline-form>.button{flex-basis:45%;min-width:0}.pair-row{flex-wrap:wrap;gap:9px;font-size:12px}.pair-row>span:first-child{flex-basis:35%}.pair-row .text-button{margin-left:0;flex-basis:100%;justify-content:flex-end;margin-top:5px}.pair-row .icon{width:15px;height:15px}.pair-row select{max-width:55%;font-size:12px}.info-note{font-size:10px;padding:14px 12px}.rule-chip{font-size:9px}.settings-layout{gap:22px}.below-note{font-size:8px;align-items:flex-start;line-height:1.7}.nav-item{font-size:10px}#navigation{gap:15px}.nav-item.active:after{bottom:2px}.brand{font-size:15px;gap:10px}.brand small{font-size:5px;letter-spacing:1.8px}.brand-star{font-size:37px}.masthead{padding:18px 22px}.motion-button{width:31px;height:31px;font-size:20px}dialog{padding:30px 25px}dialog h2{font-size:32px}.empty-state{padding:35px 18px}.empty-state h3{font-size:25px}.empty-state p{font-size:11px}.envelope-message>p br{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

.flake-0{left:0.0%;animation-delay:-0.0s;animation-duration:15s;font-size:7px}
.flake-1{left:6.3%;animation-delay:-1.7s;animation-duration:17s;font-size:10px}
.flake-2{left:12.6%;animation-delay:-3.4s;animation-duration:19s;font-size:13px}
.flake-3{left:18.9%;animation-delay:-5.1s;animation-duration:21s;font-size:16px}
.flake-4{left:25.2%;animation-delay:-6.8s;animation-duration:23s;font-size:7px}
.flake-5{left:31.5%;animation-delay:-8.5s;animation-duration:25s;font-size:10px}
.flake-6{left:37.8%;animation-delay:-10.2s;animation-duration:27s;font-size:13px}
.flake-7{left:44.1%;animation-delay:-11.9s;animation-duration:15s;font-size:16px}
.flake-8{left:50.4%;animation-delay:-13.6s;animation-duration:17s;font-size:7px}
.flake-9{left:56.699999999999996%;animation-delay:-15.299999999999999s;animation-duration:19s;font-size:10px}
.flake-10{left:63.0%;animation-delay:-17.0s;animation-duration:21s;font-size:13px}
.flake-11{left:69.3%;animation-delay:-18.7s;animation-duration:23s;font-size:16px}
.flake-12{left:75.6%;animation-delay:-20.4s;animation-duration:25s;font-size:7px}
.flake-13{left:81.89999999999999%;animation-delay:-22.099999999999998s;animation-duration:27s;font-size:10px}
.flake-14{left:88.2%;animation-delay:-23.8s;animation-duration:15s;font-size:13px}
.flake-15{left:94.5%;animation-delay:-25.5s;animation-duration:17s;font-size:16px}
.spark-0{--dx:350px;--dy:0px;animation-delay:0.0s}
.spark-1{--dx:247px;--dy:198px;animation-delay:0.035s}
.spark-2{--dx:0px;--dy:280px;animation-delay:0.07s}
.spark-3{--dx:-247px;--dy:198px;animation-delay:0.10500000000000001s}
.spark-4{--dx:-350px;--dy:0px;animation-delay:0.14s}
.spark-5{--dx:-247px;--dy:-198px;animation-delay:0.17500000000000002s}
.spark-6{--dx:-0px;--dy:-280px;animation-delay:0.21000000000000002s}
.spark-7{--dx:247px;--dy:-198px;animation-delay:0.24500000000000002s}
@media(min-width:561px) and (max-width:800px){.welcome{gap:22px}.welcome-copy{min-width:0}.welcome-art{margin:0}.christmas-art{width:100%;margin-left:0}.auth-form{max-width:100%}.art-caption{margin-left:0}.welcome h1{font-size:49px}.privacy-line{font-size:6.8px}}

/* The exchange lives inside a painted Christmas room. */
body{background:#14251e;min-height:100svh}
.christmas-scene{position:fixed;inset:0;z-index:-2;pointer-events:none;background:#14251e url('/christmas-room-dogs.png') center center/cover no-repeat}
.christmas-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#09180e3d,transparent 24%,transparent 76%,#07150f35);transition:background .5s}
.signed-in .christmas-scene:after{background:#0b1c166e}
.firelight{position:absolute;right:8%;bottom:12%;width:35%;height:47%;background:radial-gradient(ellipse,#ff9a354a,transparent 66%);mix-blend-mode:screen;animation:fireGlow 3.7s ease-in-out infinite alternate}
.candle-glimmer{position:absolute;right:4%;top:8%;width:37%;height:38%;background:radial-gradient(ellipse,#f8c06b25,transparent 65%);mix-blend-mode:screen;animation:fireGlow 5.3s ease-in-out infinite alternate-reverse}
.masthead{max-width:none;min-height:96px;padding:22px 42px;border:0;color:#f5ecda;background:linear-gradient(#07130d38,transparent)}
.brand{font-size:28px;font-weight:400;letter-spacing:.3px;gap:12px}.brand-star{font-size:38px;color:#d3b16e}
.masthead .motion-button{color:#e0c48e;border-color:#d3b16e66;background:#10251c55;margin-left:8px}.masthead .motion-button:hover{background:#ffffff12}
.masthead .icon-button{color:#e2dac4}.masthead .icon-button:hover{color:white;background:#ffffff12}
.masthead .nav-item{font-size:12px;color:#e9e1d0}.masthead .nav-item.active{color:#f2d9a8}.masthead .nav-item.active:after{background:#d3b16e}
#navigation:empty{display:none}#navigation:empty+.motion-button{margin-left:auto}
#app{position:relative;z-index:1}.snow{z-index:0;opacity:.65}.flake{text-shadow:0 0 5px #ead19c66;color:#f4e3bf}
.welcome.atmospheric{max-width:1320px;min-height:calc(100svh - 96px);margin:auto;padding:35px 8% 70px;display:flex;align-items:center;justify-content:flex-start;overflow:visible}
.invitation-paper{position:relative;width:384px;max-width:100%;padding:32px 39px 36px;background:#f5eddb;border:1px solid #cdbf9d;box-shadow:0 25px 70px #030b0770,0 2px 8px #030b0760;transform:rotate(-.7deg);animation:paperArrive .8s ease both}
.invitation-paper:before{content:'';position:absolute;inset:8px;pointer-events:none;border:1px solid #b99c603d}
.invitation-paper:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%238d713f' filter='url(%23p)' opacity='.3' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
.paper-ornament{display:block;text-align:center;color:#9c7a3d;font-family:var(--serif);font-size:31px;line-height:1;margin-bottom:17px}
.welcome.atmospheric h1{font-size:57px;line-height:.99;letter-spacing:-1.5px;text-align:center;margin-bottom:18px}
.welcome.atmospheric .intro{font-size:12px;line-height:1.6;text-align:center;color:#65705e;max-width:none}
.invitation-paper .auth-form{max-width:none;margin-top:25px}.invitation-paper label{font-size:11px;margin-bottom:13px}
.invitation-paper input:not([type=checkbox]){background:#fffdf35e;border-color:#b4a88988;min-height:42px}
.invitation-paper .button{margin-top:8px}.invitation-paper .help{margin-top:18px;font-size:11px}
.invitation-paper .invite-user{text-align:center;font-size:12px}.invitation-paper .check-label{font-size:10px}
.page-wrap{max-width:1180px;padding-top:20px;padding-bottom:70px}.page-wrap.narrow{max-width:960px}
.page-intro{margin:5px 0 32px;gap:24px}.page-intro h1{color:#fbf1dc;font-size:56px;text-shadow:0 2px 16px #07181055}.page-intro h1 em{color:#e9cb91}
.page-intro>.button{background:#f4ead3;color:var(--green);border-color:#c6b184}
.paper-panel{background:#faf4e6;border-color:#bfae875e;border-radius:1px;box-shadow:0 12px 40px #06180f30}
.recipient-panel{min-height:385px;padding:35px;display:flex;align-items:center;justify-content:center}.recipient-panel:before,.recipient-panel:after{display:none}
.envelope-message{width:100%;padding:10px 0}.envelope-message .envelope{margin:22px 0 38px}.envelope-message .button{margin:15px 0 4px}
.envelope-message h2{font-size:28px;margin-top:10px}.envelope-letter{font-size:48px;line-height:1.6;color:var(--gold)}
.recipient-open{width:100%;padding:0}.recipient-note h3{font-size:22px;margin-bottom:10px}.recipient-open>.eyebrow{font-size:8px;letter-spacing:1.6px}
.green-card{background:#17392fee;padding:30px;outline:0;border:1px solid #b49b5a60;border-radius:1px;box-shadow:0 12px 40px #06180f30}
.green-card h2{font-size:31px;margin:0 0 20px}.green-card dl{margin-bottom:22px}.green-card .text-button{color:#f0d6a3;margin-top:5px}.green-card .host-note{margin-bottom:20px;font-family:var(--sans);font-size:12px;font-style:normal}
.wish-card{background:#faf4e6;border-color:#cfbf9e;border-radius:1px;box-shadow:0 8px 25px #06180f10}
.empty-state{background:#faf4e6;border:1px solid #cbbb94;border-radius:1px}.empty-state h3{font-size:28px}
.preferences{padding:28px}.preferences h2{margin-bottom:20px}.preferences textarea{background:#fffcf4}
.admin-tabs{border-bottom-color:#d3c29855;gap:34px}.admin-tabs button{color:#d4d6c3;font-size:12px}.admin-tabs button.active{color:#f2d9a8}.admin-tabs button.active:after{background:#d3b16e}
.admin-panel{min-height:300px}.admin-panel h2{font-size:30px}.choice-card{flex-direction:row;align-items:center;gap:12px;padding:18px}.choice-card strong{font-size:23px}
.draw-box{background:#eee5d1}.draw-box h3{font-size:25px}.danger-note{justify-content:flex-end;margin-top:25px;padding-top:20px}
.settings-layout{grid-template-columns:.8fr 1.2fr}.section-heading .pill{font-size:8px}.rule-list:empty{display:none}
dialog{background:#faf4e6;border-radius:1px;border-color:#bfae87;padding-top:36px}dialog h2{margin-top:0}
.loading{color:#f8ead0}.loading p{color:#e6d9bf}
@keyframes fireGlow{0%{opacity:.35;transform:scale(.98)}35%{opacity:.7}60%{opacity:.4;transform:scale(1.02)}100%{opacity:.8;transform:scale(1.04)}}
@keyframes paperArrive{from{opacity:0;transform:translateY(12px) rotate(-1.4deg)}to{opacity:1;transform:translateY(0) rotate(-.7deg)}}
@media(min-width:1450px){.welcome.atmospheric{padding-left:10%}.invitation-paper{width:400px;padding:36px 42px 40px}}
@media(max-width:1000px){.christmas-scene{background-position:60% center}.masthead{padding:23px 28px}.welcome.atmospheric{padding:25px 7% 65px}.invitation-paper{width:360px;padding:28px 34px 30px}.welcome.atmospheric h1{font-size:53px}.page-intro h1{font-size:49px}}
@media(max-width:800px){.masthead{min-height:84px;padding:19px 26px}.masthead .brand{font-size:26px}.masthead .brand-star{font-size:33px}.welcome.atmospheric{min-height:calc(100svh - 84px);padding:20px 6% 50px}.christmas-scene{background-position:65% center}.invitation-paper{width:340px;padding:26px 31px 30px}.welcome.atmospheric h1{font-size:50px}.masthead #navigation{gap:23px}.signed-in .masthead{padding-bottom:14px}.signed-in .page-wrap{padding-top:24px}.page-intro h1{font-size:45px}.dashboard-grid>aside{display:block}.green-card dl{display:flex;gap:30px}.green-card dl>div{flex:1}.green-card .text-button{margin-top:0}.settings-layout{grid-template-columns:1fr;gap:20px}.recipient-panel{min-height:360px}}
@media(max-width:560px){.masthead{min-height:78px;padding:18px 20px}.masthead .brand{font-size:23px;gap:9px}.masthead .brand-star{font-size:29px}.masthead .motion-button{width:30px;height:30px;font-size:18px}.welcome.atmospheric{min-height:calc(100svh - 78px);padding:30px 23px 50px;align-items:center;justify-content:center;display:flex;flex-direction:row}.christmas-scene{background-position:65% center}.invitation-paper{width:330px;padding:26px 29px 29px;margin:0}.welcome.atmospheric h1{font-size:49px;max-width:none;letter-spacing:-1.3px}.paper-ornament{font-size:27px;margin-bottom:15px}.welcome.atmospheric .intro{font-size:11px}.invitation-paper .auth-form{margin-top:23px}.masthead #navigation{gap:16px;margin-top:9px}.masthead .nav-item{font-size:10px}.page-intro h1{font-size:41px}.signed-in .page-wrap{padding:22px 18px 50px}.page-intro{flex-wrap:wrap;margin-bottom:26px}.page-wrap.narrow .page-intro>.button{font-size:11px;padding:11px 15px}.recipient-panel{padding:25px 18px;min-height:350px}.green-card{padding:25px}.green-card h2{font-size:29px}.green-card dl{gap:18px}.admin-tabs{gap:28px}.admin-tabs button{font-size:11px}.admin-panel{padding:23px 18px}.draw-options{grid-template-columns:1fr 1fr;gap:10px}.choice-card{flex-direction:column;align-items:flex-start;padding:15px 13px;gap:8px}.choice-card strong{font-size:20px}.choice-card>.icon{width:20px;height:20px}.danger-note{align-items:flex-end}.firelight{right:0;width:70%;bottom:10%}}
@media(max-height:740px) and (min-width:561px){.welcome.atmospheric{padding-top:8px;padding-bottom:28px}.invitation-paper{padding-top:23px;padding-bottom:25px}.welcome.atmospheric h1{font-size:49px}.paper-ornament{margin-bottom:12px}}

/* Velvet ribbons and writing lines replace boxed controls. */
.button.primary,.page-intro>.button{background:linear-gradient(105deg,#69212d,#923b48 38%,#7d2939 72%,#68212f);color:#fff0da;border:0;border-radius:0;padding:13px 32px;min-height:48px;font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:.1px;clip-path:polygon(0 0,100% 0,97% 50%,100% 100%,0 100%,3% 50%);box-shadow:none}
.button.primary:hover:not(:disabled),.page-intro>.button:hover:not(:disabled){background:linear-gradient(105deg,#7b2835,#a34c58 38%,#8d3544 72%,#782a38);box-shadow:none;transform:translateY(-1px)}
.button.primary:focus-visible,.page-intro>.button:focus-visible{outline:0;box-shadow:inset 0 0 0 3px #dfba70}
.button.secondary,.button.danger{background:transparent;border:0;border-radius:0;min-height:38px;padding:6px 0;font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:#a18a5960;box-shadow:none}
.button.secondary:hover:not(:disabled),.button.danger:hover:not(:disabled){background:transparent;text-decoration-color:currentColor;transform:none}.button.danger{color:#842b37}
.invitation-paper .button{justify-content:center;gap:15px;margin-top:20px}.invitation-paper .button .icon{width:18px;height:18px}
.invitation-paper input:not([type=checkbox]){border:0;border-bottom:1px solid #a99a76;background:transparent;border-radius:0;padding:8px 2px;margin-top:4px;min-height:37px;box-shadow:none}
.invitation-paper input:not([type=checkbox]):focus{border-color:#7e6137;box-shadow:none;outline:0;border-bottom-width:2px}.invitation-paper label{margin-bottom:17px}
.invitation-paper .help{font-family:var(--serif);font-size:16px;margin-top:21px;color:#77755e}
.choice-card,.choice-card.selected{border:0;border-bottom:1px solid #d4c6a4;background:transparent;box-shadow:none;border-radius:0;padding:15px 3px}.choice-card.selected{border-bottom:2px solid var(--red);color:var(--red)}
.envelope-sprig{display:none}.recipient-panel:has(.envelope-message){background:transparent;border:0;box-shadow:none}.envelope-message>h2{color:#f6ead4}.envelope-message .envelope{filter:drop-shadow(0 18px 18px #00000055)}
@media(max-width:800px){.masthead .motion-button{margin-left:auto}}
@media(max-width:560px){.page-intro>.button,.page-wrap.narrow .page-intro>.button,.section-heading .button.primary{font-size:18px;padding:11px 26px}.button.primary{font-size:19px;padding:12px 28px}.invitation-paper .auth-form label{margin-bottom:17px}.invitation-paper .help{font-size:16px}.choice-card strong{font-size:20px}}
.invitation-paper input:-webkit-autofill,.invitation-paper input:-webkit-autofill:hover,.invitation-paper input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #f5eddb inset!important;-webkit-text-fill-color:var(--ink)}

.exchange-details{animation:exchangeAppear .65s ease-out both}
@keyframes exchangeAppear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Keep the painting and its effects locked to the same crop at every screen size. */
.christmas-scene{overflow:hidden}
.room-artwork{position:absolute;left:50%;top:50%;width:max(100vw,150vh);height:max(66.6666667vw,100vh);max-width:none;transform:translate(-50%,-50%);overflow:hidden}
.painted-flames{animation:paintedFirelight 2.4s ease-in-out infinite alternate}
.still .scene-motion{display:none}
@keyframes paintedFirelight{0%{filter:brightness(.94) saturate(.96)}37%{filter:brightness(1.08) saturate(1.05)}70%{filter:brightness(.98) saturate(1)}100%{filter:brightness(1.06) saturate(1.03)}}
@media(max-width:1000px){.room-artwork{left:60%;transform:translate(-60%,-50%)}}
@media(max-width:800px){.room-artwork{left:65%;transform:translate(-65%,-50%)}}
@media(prefers-reduced-motion:reduce){.scene-motion{display:none}}

/* Leave the low hearth and its dogs clear on screens with room to do so. */
@media(min-width:901px){
  .welcome.atmospheric{max-width:none;padding:16px clamp(28px,5vw,90px) 60px;align-items:flex-start}
  .invitation-paper{width:330px;padding:24px 29px 25px}
  .welcome.atmospheric h1{font-size:48px;margin-bottom:14px}
  .paper-ornament{font-size:27px;margin-bottom:12px}
  .invitation-paper .auth-form{margin-top:20px}
  .invitation-paper label{margin-bottom:14px}
  .invitation-paper .button{margin-top:12px}
  .invitation-paper .help{margin-top:14px;font-size:15px}
  /* The dogs start at about 68% of the painting's height, including its cover crop. */
  .home-page{height:max(320px,calc(50svh + max(18svh,12vw) - 120px));display:flex;flex-direction:column;padding-bottom:0}
  .home-page .page-intro{flex:none;margin-bottom:22px}
  .home-page .dashboard-grid{flex:1;min-height:0;align-items:start}
  .home-page .recipient-panel{min-height:0;max-height:100%;padding:22px 26px;overflow:auto;scrollbar-color:#bba77e transparent;scrollbar-width:thin;align-items:flex-start}
  .home-page .recipient-panel:has(.envelope-message){height:100%;overflow:visible;align-items:center;padding:0}
  .home-page .envelope-message{padding:0}
  .home-page .envelope-message .envelope{scale:.84;margin:-12px 0 -3px}
  .home-page .envelope-message .button{margin:12px 0 0;min-height:46px}
  .home-page .recipient-open>h2{font-size:44px}
  .home-page .recipient-open>.eyebrow{margin-bottom:6px}
  .home-page .ornament-divider{margin:8px 0;line-height:20px}
  .home-page .recipient-open .section-heading{margin-bottom:14px}
  .home-page .recipient-open .empty-state{display:grid;grid-template-columns:28px 1fr;column-gap:14px;padding:18px 20px;text-align:left}
  .home-page .recipient-open .empty-state>.icon{grid-row:1/3;width:25px;height:25px;margin:4px 0 0}
  .home-page .recipient-open .empty-state h3{font-size:22px;margin-bottom:4px}
  .home-page .recipient-open .empty-state p{max-width:none;margin:0}
  .home-page .hide-secret{margin-top:14px}
  .home-page .recipient-note{margin-bottom:18px}
  .home-page .exchange-details{height:100%;min-height:0;max-height:100%}
  .home-page .green-card{max-height:100%;overflow:auto;padding:22px 24px;scrollbar-color:#bba77e transparent;scrollbar-width:thin}
  .home-page .green-card h2{font-size:28px;margin-bottom:14px}
  .home-page .green-card dl{display:flex;gap:20px;margin-bottom:16px}
  .home-page .green-card dl>div{flex:1;padding:10px 0}
  .home-page .green-card dd{margin-left:0;font-size:20px}
  .home-page .green-card .host-note{padding-top:12px;margin-bottom:14px}
  .front-page dialog{inset:clamp(96px,15svh,150px) auto auto clamp(28px,5vw,90px);margin:0;width:380px;max-height:calc(100svh - 140px);overflow:auto;padding:30px}
  .front-page dialog::backdrop{background:#07150f35;backdrop-filter:none}
  .front-page #toast{top:96px;bottom:auto;left:auto;right:32px;max-width:360px;transform:translateY(-12px)}
  .front-page #toast.visible{transform:translateY(0)}
}
@media(min-width:901px) and (max-height:740px){
  .welcome.atmospheric{padding-top:4px}
  .invitation-paper{width:310px;padding:19px 27px 20px}
  .welcome.atmospheric h1{font-size:44px;margin-bottom:12px}
  .paper-ornament{font-size:24px;margin-bottom:8px}
  .invitation-paper .auth-form{margin-top:15px}
  .invitation-paper label{margin-bottom:11px}
  .invitation-paper .button{margin-top:8px;min-height:44px;padding-block:10px}
  .invitation-paper .help{margin-top:9px}
  .home-page{padding-top:8px}
  .home-page .page-intro{margin-bottom:18px}
  .home-page .page-intro h1{font-size:48px}
  .home-page .envelope-message .envelope{scale:.76;margin:-18px 0 -12px}
}
