:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#f6edda;background:#102e28;font-synthesis:none;font-size:16px;line-height:1.6;--gold: #edcb87;--muted: #b5c5b7;--red: #b94250;--line: #ffffff20;--panel: #173a31}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 25px;border:1px solid transparent;border-radius:7px;background:var(--gold);color:#173329;font-weight:700;text-decoration:none;cursor:pointer;transition:background .18s,transform .18s}button:hover,.button:hover{background:#f7db9e;transform:translateY(-1px)}button:active{transform:translateY(1px)}button:disabled,fieldset:disabled button{opacity:.5;cursor:wait;transform:none}a{color:var(--gold);text-underline-offset:5px}a:hover{color:#fff0c9}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #f5d58f;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,Times New Roman,serif;font-weight:400;line-height:1.12;text-wrap:balance}h1{font-size:clamp(2.6rem,6vw,4.7rem);letter-spacing:-.045em;margin-bottom:22px}h2{font-size:1.9rem;letter-spacing:-.025em;margin-bottom:12px}h3{font-size:1.45rem;margin-bottom:14px}p{color:var(--muted)}small{font-size:.78rem}header,footer,main{position:relative;z-index:1}header{max-width:1320px;margin:auto;padding:35px 56px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:13px;align-items:center;color:#f6edda;text-decoration:none}.brand>span{font:1.65rem Georgia,serif;letter-spacing:-.04em}.brand small{display:block;color:var(--muted);font:.64rem Trebuchet MS,sans-serif;letter-spacing:.13em;margin-top:5px}.header-actions{display:flex;align-items:center;gap:20px}.motion-toggle,.text-button{background:transparent;color:var(--muted);border:0;padding:6px 0;min-height:44px;font-size:.8rem;font-weight:400}.motion-toggle:hover,.text-button:hover{background:transparent;color:#fff;transform:none}.secondary{background:transparent;border:1px solid #cfba854d;color:#eed49c}.secondary:hover{background:#edcb8712;color:#ffe9ba}.small{font-size:.78rem;min-height:38px;padding:5px 13px}.danger{color:#f3a5a9}.app{position:relative;isolation:isolate;min-height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 50% 32%,#244a393b,transparent 55%)}.scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.scene:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.04' d='M0 0h160v160H0z'/%3E%3C/svg%3E");opacity:.45}.lights{position:absolute;top:-12px;left:-5%;width:110%;height:45px;border-bottom:1px solid #bcad6b55;border-radius:0 0 50% 50%;display:flex;justify-content:space-around;transform:rotate(-2deg)}.lights i{position:relative;display:block;margin-top:30px;width:6px;height:13px;background:#ebc77f;border-radius:50%;box-shadow:0 0 16px 5px #edcb8733}.lights i:nth-child(3n){background:#c25a50;box-shadow:0 0 16px 5px #c25a502a}.lights i:nth-child(2n){margin-top:35px}.snow{position:absolute;inset:0;height:100vh;overflow:hidden}.snow span{position:absolute;top:-30px;color:#f5e9cb66;animation:snowfall 14s linear infinite;will-change:transform}.pine{position:absolute;bottom:20px;font-size:60px;line-height:.75;color:#204b3b;text-align:center;letter-spacing:-16px;text-shadow:1px 1px 0 #65805b22;transform:rotate(-5deg);opacity:.8}.pine-left{left:-40px}.pine-right{right:-35px;transform:rotate(7deg);font-size:90px}.orb{position:absolute;top:100px;width:60px;height:72px;border-radius:50%;background:linear-gradient(110deg,#933943,#3e292c);box-shadow:inset -9px -8px 10px #0002}.orb:before{content:"";position:absolute;top:-100px;left:50%;height:100px;border-left:1px solid #d3b77566}.orb:after{content:"✧";color:#e5c57d;position:absolute;inset:9px;text-align:center;font:37px Georgia}.orb-one{left:8%;transform:rotate(10deg)}.orb-two{right:8%;top:140px;transform:rotate(-10deg);width:44px;height:53px;background:linear-gradient(110deg,#b79857,#66552d)}.orb-two:after{font-size:25px}.welcome,.participant{text-align:center;max-width:880px;margin:38px auto 0;padding:0 24px 45px}.event-tag{display:inline-flex;align-items:center;gap:10px;padding:7px 15px;border:1px solid #d6bf7f33;border-radius:30px;color:#ddcc9e;font-size:.72rem;letter-spacing:.02em;margin-bottom:30px}.event-tag>span{width:5px;height:5px;background:var(--gold);border-radius:50%;box-shadow:0 0 10px #edcb8780}.welcome h1{font-size:clamp(3.3rem,7.5vw,5.7rem)}.intro{font-size:1rem;line-height:1.8}.greeting{font-size:.95rem;color:var(--gold);margin-bottom:13px}.gift{position:relative;width:270px;height:250px;margin:28px auto 15px;perspective:700px}.gift-halo{position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(ellipse,#dcbb6c1a,transparent 68%)}.gift-box{position:absolute;bottom:31px;left:45px;width:180px;height:135px;border-radius:0 0 7px 7px;background:linear-gradient(110deg,#b64b50,#8c2c3b);transform:rotate(-5deg);box-shadow:inset -14px 0 #00000012,6px 15px 30px #0003;overflow:hidden}.gift-box:after{content:"";position:absolute;inset:0;background-image:radial-gradient(#f9dc982e 1px,transparent 1px);background-size:19px 19px}.gift-box>span{position:absolute;top:55px;left:29px;color:#edc77f;font-size:22px;transform:rotate(15deg)}.gift-ribbon{position:absolute;width:32px;height:100%;background:linear-gradient(90deg,#d8b269,#f3d795,#d2ac62);left:76px;z-index:1}.gift-lid{position:absolute;left:31px;top:69px;width:208px;height:43px;border-radius:4px;background:linear-gradient(100deg,#d36263,#a13544);transform:rotate(-5deg);z-index:3;box-shadow:0 5px 9px #0003}.gift-lid:after{content:"";position:absolute;left:90px;width:34px;height:100%;background:linear-gradient(90deg,#d8b269,#f3d795,#d2ac62)}.bow{position:absolute;bottom:35px;width:73px;height:42px;border:11px solid #e5c37d;border-radius:60% 65% 0 70%;box-shadow:inset 2px 2px 4px #0002,2px 2px 3px #0002}.bow.left{left:39px;transform:rotate(22deg)}.bow.right{right:38px;transform:rotate(79deg)}.gift-shadow{position:absolute;bottom:0;left:24px;width:240px;height:20px;border-radius:50%;background:#061e1880;filter:blur(8px)}.spark{position:absolute;color:#eccb85}.s1{left:2px;top:64px;font-size:35px;transform:rotate(-15deg)}.s2{right:0;top:36px;font-size:23px}.s3{right:15px;bottom:32px;font-size:36px}.opening .gift-box{animation:shake .25s ease-in-out infinite}.opening .gift-lid{animation:lid 1.8s ease-in forwards}.opening .spark{animation:twinkle .5s alternate infinite}.scan-note{max-width:440px;margin:12px auto 25px;display:flex;text-align:left;gap:20px;align-items:center;padding:20px 25px;border:1px solid #d9be7c40;border-radius:10px;background:#244a3438}.scan-note>span{font-size:42px;color:var(--gold);line-height:1}.scan-note strong{font-size:.88rem;font-weight:400;color:#f2e3c3}.scan-note p{font-size:.78rem;margin:5px 0 0;line-height:1.65}.secret-note{font-size:.73rem;color:#bcc6af;margin:23px 0}.organizer-link{display:inline-block;font-size:.76rem;color:#cbbb98;margin:12px 0 20px;text-decoration:none;border-bottom:1px solid #cbbb9850}.elf-note{display:flex;text-align:left;align-items:center;gap:16px;max-width:350px;margin:25px auto 0;padding-top:25px;border-top:1px solid var(--line)}.elf-note>img{width:63px;height:70px;object-fit:contain;transform:rotate(-7deg)}.elf-note p{font:italic .9rem/1.5 Georgia,serif;margin:0;color:#d1d8bd}.elf-note small{display:block;font:.59rem/1.8 Trebuchet MS,sans-serif;color:#9aaf9f;margin-top:7px}.reveal-status{font-size:.8rem;margin:15px auto 24px;min-height:28px;max-width:480px;color:#c7d1bd}.reveal-button{font-size:.9rem;padding:16px 27px}.participant h1{font-size:clamp(2.8rem,6vw,4.6rem)}.result-card{position:relative;max-width:620px;margin:25px auto 0;background:#254e3d;border:1px solid #e3c77f;border-radius:22px;overflow:hidden;box-shadow:0 0 0 7px #edcb8710,0 20px 70px #001c1670;animation:reveal .7s ease-out}.result-portrait{height:clamp(340px,55vw,520px);margin:12px 12px 0;border-radius:12px;overflow:hidden;background:#102e28;border:1px solid #ffffff1a}.recipient-photo{display:block;width:100%;height:100%;object-fit:contain}.recipient-illustration{display:block;width:100%;height:100%;object-fit:contain;padding:24px}.result-content{padding:26px 24px 12px}.result-content p{color:var(--gold);font-size:.8rem}.participant .result-content h1{font-size:clamp(3rem,8vw,5rem);color:#fff2d2;margin-bottom:17px;overflow-wrap:anywhere}.result-content>span{font:italic 1rem/1.7 Georgia,serif;color:#e5dfc7;display:block;max-width:340px;margin:auto}.result-content h1:focus{outline:0}footer{max-width:1208px;margin:0 auto;padding:26px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;font-size:.65rem;color:#9cb09c}footer>span:nth-child(2){color:var(--gold)}.login{max-width:440px;margin:40px auto 70px;padding:0 25px;text-align:center}.login-santa{width:110px;height:115px;object-fit:contain;margin-bottom:15px}.login h1{font-size:3rem}.login form{text-align:left;padding:27px;background:#1c4033;border:1px solid var(--line);border-radius:10px;margin:28px 0 15px}.login form button{width:100%;margin-top:22px}label{display:block;font-size:.8rem;color:#dfdfc9}input:not([type=checkbox]),select{width:100%;display:block;background:#102e28;border:1px solid #b7c4a53b;color:#f5eedb;border-radius:5px;min-height:46px;margin-top:7px;padding:10px 12px;font-size:.87rem}input::placeholder{color:#98ad9d}input:disabled,select:disabled{opacity:.6}select{color-scheme:dark}input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);flex-shrink:0}.check{display:flex;align-items:center;gap:10px;padding:15px 0}.error,.success,.notice{border:1px solid #d68e7966;padding:13px 17px;border-radius:6px;font-size:.86rem;color:#ffd2c1;background:#8e384025}.success{border-color:#82c59e55;color:#c7e7c8;background:#4b8a5518}.notice{border-color:#d6bb7b55;color:#ead6a8;background:#b2984b12}.error p{color:inherit;margin:7px 0 0}.center{text-align:center;min-height:65vh;padding:100px 20px}.center h1{font-size:2rem}.admin{max-width:1100px;margin:25px auto 80px;padding:0 32px}.admin-title{display:flex;align-items:center;justify-content:space-between}.admin-title h1{font-size:3.5rem}.admin-title>img{width:130px;height:150px;transform:rotate(8deg)}.admin-title p:last-child{margin-bottom:0;font-size:.9rem}.feedback{min-height:30px}.feedback p{margin-bottom:20px}.admin-fieldset{border:0;margin:0;padding:0;min-width:0}.event-bar{display:flex;gap:25px;align-items:flex-end;padding:22px 0 30px;border-bottom:1px solid var(--line)}.event-bar>label{flex:1;max-width:520px}.event-bar select{background:#1e4134}.new-event{position:relative}.new-event summary{list-style:none;font-size:.82rem}.new-event summary::-webkit-details-marker{display:none}.new-event[open] summary{margin-bottom:15px}.new-event form{display:grid;gap:17px;width:min(370px,80vw);position:absolute;right:0;z-index:5;background:#214737;padding:25px;box-shadow:0 15px 40px #00191099;border:1px solid #c8b97a55;border-radius:8px}.event-overview{display:flex;gap:25px;align-items:center;justify-content:space-between;padding:35px 0}.event-overview h2{margin-top:15px;font-size:2.3rem}.event-overview p{font-size:.85rem;margin-bottom:0}.event-count{flex-shrink:0;text-align:center;min-width:130px;border-left:1px solid var(--line);padding-left:24px}.event-count strong{display:block;font:3.5rem/1.1 Georgia,serif;color:var(--gold)}.event-count>span{font-size:.7rem;color:var(--muted)}.status{display:inline-flex;align-items:center;gap:7px;color:#edce8b;font-size:.7rem}.status i{width:6px;height:6px;border-radius:50%;background:#edce8b}.status.done{color:#b3d5b5}.status.done i{background:#b3d5b5}.tabs{display:flex;border-bottom:1px solid var(--line);gap:32px;margin-bottom:25px}.tabs button{background:transparent;padding:12px 0 17px;border-radius:0;color:var(--muted);font-size:.85rem;font-weight:400;transform:none;position:relative}.tabs button.active{color:var(--gold)}.tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gold)}.panel{background:linear-gradient(120deg,#1c3d32,#183a30);padding:32px;border:1px solid var(--line);border-radius:9px}.panel>p{font-size:.85rem}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.section-heading h2{font-size:1.7rem}.section-heading p{font-size:.8rem;margin:0}.section-heading>button{font-size:.8rem;flex-shrink:0}.add-person{display:flex;gap:15px;align-items:flex-end}.add-person label:first-child{flex:1.2}.add-person label:nth-child(2){flex:1}.add-person>button{font-size:.8rem;white-space:nowrap;min-height:46px}.optional{color:#b4c1aa;font-size:.7rem}.hint{font-size:.72rem!important;margin:12px 0 20px;line-height:1.6}.people{list-style:none;margin:25px 0 0;padding:0}.person-row{display:flex;gap:15px;align-items:center;border-top:1px solid var(--line);padding:18px 0;min-width:0}.person-row:last-child{padding-bottom:0}.avatar{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:#bdd09116;border:1px solid #bcc79322;color:#e5ce99;font:1.4rem Georgia;flex-shrink:0}.person-name{flex:1;min-width:0}.person-name strong{font-size:.9rem;font-weight:400;overflow-wrap:anywhere}.person-name small{display:block;color:#afbfaa;font-size:.65rem;margin-top:2px}.row-actions{display:flex;align-items:center;gap:16px}.row-actions .text-button{font-size:.7rem}.edit-person{display:flex;align-items:flex-end;gap:10px;width:100%}.edit-person label{flex:1;min-width:0}.edit-person button{font-size:.7rem;padding:10px 13px}.empty{padding:28px 0 0;margin:0;font-size:.85rem;color:#b4c1aa}.empty-state{text-align:center;padding:70px 30px;border-bottom:1px solid var(--line)}.empty-state h2{margin-top:25px}.empty-state p{font-size:.9rem;max-width:420px;margin:auto}.mini-gift{width:80px;height:80px}.exclusion-form{display:flex;align-items:flex-end;gap:15px;margin:24px 0}.exclusion-form label{flex:1}.exclusion-form>span{align-self:center;padding-top:20px;color:var(--gold)}.exclusion-form button{font-size:.8rem}.exclusions{list-style:none;padding:0;margin:20px 0 0}.exclusions li{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:10px 0;font-size:.85rem}.exclusions li>span>span{padding:0 15px;color:var(--gold)}.draw-panel{text-align:center;padding:40px}.draw-panel h2{margin:25px 0 15px}.draw-panel p{max-width:540px;margin:0 auto 20px}.draw-panel .check{justify-content:center;margin-bottom:20px}.codes-section{margin-top:45px;padding-top:35px;border-top:1px solid var(--line)}.codes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.code-card{text-align:center;background:#f7f0df;color:#16392c;border-radius:8px;padding:25px 18px;min-width:0}.code-card h3{overflow-wrap:anywhere}.code-card>img{max-width:100%;height:auto;border-radius:4px}.code-card p{color:#425d4e;font-size:.85rem;margin:15px 0 10px}.code-card small{color:#536c5d;font-size:.65rem}.code-card .actions{display:flex;justify-content:center;gap:10px;margin-top:20px}.code-card .secondary{font-size:.7rem;padding:8px 10px;border-color:#476d4f55;color:#214832;min-height:40px}.code-card details{font-size:.7rem;margin-top:18px}.code-card details input{font-size:.7rem;background:#fff;color:#173329}.sr-only{position:absolute!important;width:1px;height:1px;padding:0!important;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.quiet *{animation:none!important;transition:none!important}.quiet .snow{display:none}@keyframes snowfall{0%{transform:translate3d(0,-30px,0) rotate(0)}to{transform:translate3d(55px,105vh,0) rotate(140deg)}}@keyframes shake{0%,to{transform:rotate(-5deg)}50%{transform:rotate(1deg)}}@keyframes lid{0%,40%{transform:translateY(0) rotate(-5deg)}60%{transform:translateY(-25px) rotate(-12deg)}to{transform:translateY(-100px) rotate(-25deg);opacity:0}}@keyframes twinkle{to{transform:scale(1.4);opacity:.3}}@keyframes reveal{0%{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.snow{display:none}}@media(min-width:1500px){.welcome,.participant{margin-top:65px}.gift{margin-top:40px;margin-bottom:25px}}@media(max-width:900px){header{padding:32px}.orb-one{left:0;opacity:.6}.orb-two{right:0;opacity:.6}footer{margin:0 32px}.panel{padding:24px}.row-actions{gap:10px}.person-row{flex-wrap:wrap}.person-name{min-width:200px}.row-actions{margin-left:58px}.add-person{flex-wrap:wrap}.add-person label{min-width:180px}.edit-person,.exclusion-form{flex-wrap:wrap}.exclusion-form button{width:100%}.event-count{min-width:100px}}@media(max-width:600px){header{padding:28px 20px 20px}.brand>span{font-size:1.4rem}.brand small{font-size:.55rem}.brand img{width:29px}.header-actions{gap:12px;flex-wrap:wrap;justify-content:flex-end}.motion-toggle,.header-actions .text-button{font-size:.65rem}.welcome,.participant{margin-top:30px;padding-bottom:35px}.event-tag{font-size:.65rem;margin-bottom:28px}.welcome h1{font-size:3.4rem}.intro{font-size:.85rem}.gift{transform:scale(.9);margin-top:10px;margin-bottom:0}.orb{display:none}.scan-note{margin:4px auto 20px;padding:16px;gap:14px}.scan-note strong{font-size:.8rem}.scan-note p{font-size:.72rem}.organizer-link{font-size:.7rem}.elf-note{margin-top:18px}.pine{opacity:.4}footer{margin:0 20px;flex-direction:column;text-align:center;gap:5px;padding:22px 10px;font-size:.6rem}footer>span:nth-child(2){display:none}.result-card{border-radius:18px}.result-portrait{height:clamp(280px,105vw,440px);margin:8px 8px 0;border-radius:10px}.result-content{padding:22px 16px 12px}.result-content p{font-size:.7rem}.result-content>span{font-size:.85rem}.reveal-button{width:100%;padding:15px 12px;font-size:.8rem}.admin{padding:0 18px;margin-top:30px}.admin-title h1{font-size:2.6rem}.admin-title>img{width:80px;height:120px}.admin-title p:last-child{font-size:.75rem}.greeting{font-size:.8rem}.event-bar{gap:13px;align-items:stretch;flex-direction:column;padding-top:10px}.new-event summary{font-size:.75rem}.new-event form{left:0;right:auto;width:100%}.event-overview{padding:26px 0}.event-overview h2{font-size:1.8rem;overflow-wrap:anywhere}.event-overview p{font-size:.75rem}.event-count{min-width:70px;padding-left:15px}.event-count strong{font-size:2.7rem}.event-count>span{font-size:.58rem}.tabs{gap:20px}.tabs button{font-size:.73rem}.panel{padding:20px 16px}.section-heading{flex-direction:column;align-items:flex-start;gap:15px}.section-heading h2{font-size:1.5rem}.section-heading p{font-size:.75rem}.add-person{gap:14px}.add-person label{flex-basis:100%!important}.add-person button{width:100%}.person-row{gap:10px}.person-name{min-width:120px}.row-actions{margin-left:0;width:100%;justify-content:flex-end;flex-wrap:wrap}.row-actions .text-button{font-size:.66rem}.avatar{width:38px;height:38px}.edit-person{width:calc(100% - 48px)}.edit-person label{flex-basis:100%}.check{font-size:.73rem;align-items:flex-start}.exclusion-form label{flex-basis:100%}.exclusion-form>span{display:none}.draw-panel{padding:28px 17px}.draw-panel button{font-size:.78rem}.draw-panel h2{font-size:1.7rem}.login{margin-top:20px}.login h1{font-size:2.6rem}.login form{padding:23px}.login>p{font-size:.85rem}.codes{grid-template-columns:1fr}}.holiday-reactions{display:flex;justify-content:center;gap:22px;margin:12px auto 24px;font-size:1.5rem}.holiday-reactions span:nth-child(2n){transform:rotate(-12deg)}.holiday-reactions span:nth-child(odd){transform:rotate(10deg)}.meme-card{max-width:610px;text-align:left;margin:36px auto 18px;border:1px solid #edcb873d;border-radius:14px;background:#204333;overflow:hidden;box-shadow:0 12px 34px #061d1826}.meme-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px 18px;background:#edcb8710;color:#ecd5a1;font-size:.75rem}.meme-heading>span:first-child{display:flex;align-items:center;gap:9px}.meme-heading>span:first-child>span{font-size:1.25rem}.meme-stamp{font-size:.6rem;border:1px dashed #b8ce9f66;border-radius:4px;padding:3px 8px;transform:rotate(3deg);color:#d0e0b4;white-space:nowrap}.meme-body{display:grid;grid-template-columns:220px 1fr;align-items:stretch}.meme-visual{position:relative;background:#102e28;min-height:200px;display:grid;place-items:center;overflow:hidden}.meme-visual img{display:block;width:100%;height:220px;object-fit:contain;outline:1px solid #ffffff1a;outline-offset:-1px}.gif-tag{position:absolute;bottom:9px;left:10px;background:#092b24db;border:1px solid #ffffff33;color:#fff0d5;font-size:.6rem;padding:1px 7px;border-radius:4px}.meme-copy{display:flex;flex-direction:column;justify-content:center;padding:22px;gap:14px;min-width:0}.meme-copy p{font:1.2rem/1.5 Georgia,serif;color:#f8ecd1;margin:0;overflow-wrap:anywhere;text-wrap:pretty}.meme-reactions{font-size:1.1rem;letter-spacing:8px}.meme-copy a,.meme-copy small{font-size:.62rem;color:#bcccb6}.meme-footer{border-top:1px solid var(--line);padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px}.meme-footer small{font-size:.63rem;color:#bbccae}.meme-footer button{font-size:.7rem;color:var(--gold);white-space:nowrap;min-width:90px}.redraw-box{margin:30px auto 0;padding:25px 15px 0;border-top:1px dashed #edcb8755;max-width:560px}.redraw-box h3{font-size:1.5rem}.redraw-box p{font-size:.82rem}.event-bar{flex-wrap:wrap}.event-bar .danger{font-size:.75rem;color:#ffc0c4;border-color:#df83914d}.event-count strong{font-variant-numeric:tabular-nums}@media(max-width:600px){.meme-body{grid-template-columns:1fr}.meme-visual img{height:230px}.meme-copy{padding:20px}.meme-copy p{font-size:1.1rem}.meme-footer{align-items:flex-start}.meme-heading{font-size:.68rem;padding:12px}.meme-stamp{font-size:.55rem}.holiday-reactions{gap:20px;font-size:1.25rem}.meme-footer small{padding-top:9px}.event-bar .danger{align-self:flex-start}}@media print{@page{size:A4;margin:12mm}body{background:#fff;color:#000}.scene,header,footer,.admin-title,.feedback,.admin-fieldset,.no-print,.codes-section>.section-heading{display:none!important}.app{background:#fff;overflow:visible}.admin{margin:0;padding:0;max-width:none}.codes-section{border:0;margin:0;padding:0}.codes{display:grid;grid-template-columns:1fr 1fr;gap:8mm}.code-card{break-inside:avoid;page-break-inside:avoid;background:#fff;color:#000;border:1px dashed #777;padding:7mm 4mm;border-radius:0}.code-card>img{width:47mm;height:47mm}.code-card h3{font-size:20pt;margin:0 0 2mm}.code-card p,.code-card small{color:#000}.code-card p{font-size:10pt}.code-card small{font-size:8pt}}.greeting,.event-tag i,.countdown-copy p,.joke-text,.gift-quip{transition:opacity .35s}.pending{opacity:0}.event-tag i{font-style:normal}.backdrop{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.decor-item{position:absolute;height:auto;opacity:.17;filter:saturate(.85);-webkit-user-select:none;user-select:none;transform:rotate(var(--rot, 0deg));animation:decor-bob 8s ease-in-out infinite alternate;will-change:transform}@keyframes decor-bob{0%{transform:translateY(-9px) rotate(var(--rot, 0deg))}to{transform:translateY(9px) rotate(calc(var(--rot, 0deg) + 4deg))}}.santa-flyer{position:absolute;left:0;width:280px;animation-duration:17s;animation-timing-function:linear;animation-fill-mode:both;will-change:transform}.santa-flyer.ltr{animation-name:fly-ltr}.santa-flyer.rtl{animation-name:fly-rtl}.santa-flyer.rtl img{transform:scaleX(-1)}.santa-bob{position:relative;animation:santa-bob 2.8s ease-in-out infinite alternate}.santa-bob img{display:block;width:100%;height:auto;filter:drop-shadow(0 6px 14px #0005)}.santa-bubble{position:absolute;left:50%;bottom:calc(100% - 6px);width:max-content;max-width:230px;margin:0;padding:8px 13px;transform:translate(-50%);border-radius:14px;background:#fff6e0;color:#3b2a22;font:italic .78rem/1.35 Georgia,serif;text-align:center;box-shadow:0 6px 18px #0004;animation:bubble-in .5s ease-out 1.2s both}.santa-bubble:after{content:"";position:absolute;top:100%;left:50%;margin-left:-7px;border:7px solid transparent;border-top-color:#fff6e0}@keyframes fly-ltr{0%{transform:translate(-300px)}to{transform:translate(100vw)}}@keyframes fly-rtl{0%{transform:translate(100vw)}to{transform:translate(-300px)}}@keyframes santa-bob{0%{transform:translateY(-12px) rotate(-1.5deg)}to{transform:translateY(14px) rotate(2deg)}}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%) scale(.7)}to{opacity:1;transform:translate(-50%) scale(1)}}.gift-button{display:block;margin:0 auto;padding:0;min-height:0;border:0;border-radius:24px;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.gift-button:hover{background:transparent;transform:none}.gift-button:active{transform:scale(.97)}.gift-button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.poked .gift-box{animation:poke .6s ease-in-out}.poked .spark{animation:twinkle .3s alternate 2}@keyframes poke{0%,to{transform:rotate(-5deg)}20%{transform:rotate(-13deg) translate(-5px)}45%{transform:rotate(4deg) translate(5px)}70%{transform:rotate(-9deg)}}.gift-quip{min-height:3.1em;max-width:420px;margin:0 auto 8px;font:italic .92rem/1.55 Georgia,serif;color:var(--gold)}.gift-quip:empty{min-height:0}.countdown{display:flex;align-items:center;justify-content:center;gap:20px;max-width:440px;margin:26px auto 0;padding:16px 22px;border:1px solid #edcb873d;border-radius:14px;background:#1d3f31cc;text-align:left}.countdown-number{display:flex;flex-direction:column;align-items:center;min-width:78px;line-height:1}.countdown-number strong{font:700 3rem/1 Georgia,serif;color:#fff2d2;text-shadow:0 0 22px #edcb8755}.countdown-number span{margin-top:6px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.countdown-copy b{display:block;color:var(--gold);font-size:.78rem;letter-spacing:.04em}.countdown-copy p{margin:5px 0 0;font-size:.86rem;line-height:1.5;color:#d8dfc9}.joke-card{display:flex;gap:18px;align-items:flex-start;max-width:610px;margin:30px auto 0;padding:20px 22px;text-align:left;border:1px solid #edcb873d;border-radius:14px;background:linear-gradient(135deg,#254e3d,#1c3d30);box-shadow:0 14px 40px #0003}.joke-card>img{flex:none;width:64px;height:64px;object-fit:contain;transform:rotate(-6deg)}.joke-card h2{margin:0 0 8px;font:700 .7rem/1.4 Trebuchet MS,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.joke-text{margin:0;min-height:3em;font:italic 1.08rem/1.6 Georgia,serif;color:#fff2d2;animation:reveal .5s ease-out}.joke-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.joke-foot small{font-size:.62rem;color:#9aaf9f}.confetti-burst{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti-burst i{position:absolute;top:-16px;width:8px;height:14px;opacity:0;animation:confetti-fall 3s ease-in both;will-change:transform}.confetti-burst i.round{width:9px;height:9px;border-radius:50%}@keyframes confetti-fall{0%{opacity:1;transform:translateZ(0) rotate(0)}85%{opacity:1}to{opacity:0;transform:translate3d(var(--drift, 0),640px,0) rotate(var(--spin, 540deg))}}@media(max-width:700px){.decor-item{opacity:.13}.decor-item:nth-child(n+5){display:none}.santa-flyer{width:190px;animation-duration:12s}.santa-bubble{max-width:170px;font-size:.7rem}.joke-card{padding:16px;gap:12px}.joke-card>img{width:46px;height:46px}.joke-text{font-size:1rem}.countdown{gap:14px;padding:14px 16px}.countdown-number strong{font-size:2.5rem}}@media print{.backdrop{display:none!important}}
