:root{--holly-red: #c41e3a;--holly-red-deep: #8b1528;--pine-green: #0f6b3c;--pine-bright: #1a9b56;--gold: #f0c14b;--gold-soft: #fff0c2;--snow: #fffaf3;--ink: #1a1208;--font-display: "Mountains of Christmas", "Segoe UI", cursive;--font-body: "Nunito", "Trebuchet MS", sans-serif}*{box-sizing:border-box}body{margin:0;padding:0;background:transparent;font-family:var(--font-body);color:var(--ink)}h1,h2,.christmas-title{font-family:var(--font-display);font-weight:700;letter-spacing:.02em}.wheel-wrapper{position:relative;width:min(70vw,800px);max-width:70vh;margin:2rem auto;display:flex;justify-content:center;align-items:center;filter:drop-shadow(0 0 18px rgba(240,193,75,.35))}.wheel{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:50%;border:6px solid var(--gold);box-shadow:inset 0 0 0 4px var(--holly-red-deep),0 10px 28px #00000073;overflow:hidden;background-size:cover;transition:transform 4s cubic-bezier(.25,.1,.1,1);margin:0}.wheel-label{position:absolute;transform-origin:center;pointer-events:none}.wheel-label span{display:inline-block;font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--snow);text-shadow:0 1px 0 #000,0 0 6px rgba(0,0,0,.65)}.pointer{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;height:75px;aspect-ratio:1 / 1;border-radius:50%;background:linear-gradient(160deg,#fff 0%,var(--gold-soft) 55%,var(--gold) 100%);border:3px solid var(--holly-red);box-shadow:0 4px 14px #00000059;cursor:pointer;display:flex;justify-content:center;align-items:center}.pointer p{font-family:var(--font-display);font-size:1.45rem;letter-spacing:.08em;z-index:999;color:var(--holly-red-deep);margin:0;font-weight:700}.pointer:before{content:"";position:absolute;top:-30px;left:50%;transform:translate(-50%);width:100%;height:75%;background:linear-gradient(180deg,var(--holly-red) 0%,var(--holly-red-deep) 100%);clip-path:polygon(50% 0%,15% 100%,85% 100%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.pointer-disabled{cursor:default;opacity:.85}@media(max-width:600px){.wheel-label span{font-size:.95rem}}.spin-btn{display:block;margin:0 auto 2rem;padding:.5rem 1.5rem;font-size:1.1rem;font-weight:700;cursor:pointer}.overlay{position:fixed;inset:0;width:100%;height:100%;padding:1rem;box-sizing:border-box;background:radial-gradient(circle at center,#c41e3a40,#0000009e);display:flex;justify-content:center;align-items:center;z-index:900}.card-modal-shell{position:relative;width:min(92vw,500px);max-width:100%;overflow:visible}.card-modal{background:linear-gradient(180deg,#fffaf3f5,#fff0c2eb);padding:1.5rem 1.25rem;border-radius:16px;border:3px solid var(--holly-red);box-shadow:0 0 0 4px var(--gold),0 16px 40px #00000073;color:var(--ink);text-align:center;width:100%;max-height:min(88dvh,800px);overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:1rem;position:relative;font-family:var(--font-body)}.card-modal h2{font-family:var(--font-display);font-size:clamp(1.65rem,5vw,2.6rem);color:var(--holly-red);margin:0;padding:.45rem .75rem;border-radius:12px;background:#fffaf3eb;box-shadow:0 2px 10px #0000001f;text-shadow:none;z-index:2;flex-shrink:0}.card-modal h2 strong{color:var(--pine-green);font-size:1.1em}.card-modal-shell .santa{position:absolute;width:150px;left:-75px;top:48px;z-index:3;pointer-events:none}.card-modal .christmasTree{position:absolute;width:100%;max-height:100%;bottom:0;z-index:0;margin:0;opacity:.28;pointer-events:none}.card-modal p{max-width:100%;text-align:center;margin:0;z-index:2}.card-modal p.modal-note{max-width:100%;color:var(--ink);font-weight:700;font-size:.95rem;line-height:1.4}.card-modal .email-sent{color:var(--pine-green)}.result-email-form{width:100%;display:flex;flex-direction:column;gap:.45rem;z-index:2}.result-email-form label{font-size:.9rem;font-weight:800;color:var(--pine-green)}.result-email-form .add-row{flex-wrap:wrap}.result-email-form input{flex:1 1 140px;min-width:0;padding:.65rem .75rem;border:2px solid var(--pine-bright);border-radius:8px;font-family:var(--font-body);font-size:16px;background:#fff}.result-email-form button{flex:0 0 auto;border-radius:10px;padding:.65rem .85rem;background:linear-gradient(180deg,#e23a52 0%,var(--holly-red) 100%);border:2px solid var(--holly-red-deep);color:#fff;cursor:pointer;font-family:var(--font-body);font-size:.9rem;font-weight:800;white-space:nowrap}.result-email-form button:disabled{opacity:.6;cursor:not-allowed}.result-email-form .form-error{margin:0;text-align:center;font-weight:800;font-size:.85rem}.modal-info{display:flex;flex-direction:column;gap:.75rem;align-items:center;z-index:2;width:100%;max-width:360px;padding:.75rem .85rem;border-radius:12px;background:#fffaf3f0;box-shadow:0 2px 12px #0000001f;flex-shrink:0;margin-top:auto}@media(max-width:768px){.card-modal{padding:1rem .85rem 1.1rem;gap:.75rem;max-height:min(92dvh,800px)}.card-modal h2{font-size:clamp(1.45rem,7vw,2rem);padding:.35rem .6rem}.card-modal-shell .santa{width:88px;left:-36px;top:28px;opacity:.95}.card-modal p.modal-note{font-size:.82rem;line-height:1.35}.modal-info{gap:.55rem;padding:.65rem .7rem}.result-email-form label{font-size:.8rem}.result-email-form button{width:100%}.result-email-form .add-row{flex-direction:column}}.christmas-title{font-size:clamp(2.4rem,7vw,4rem);color:var(--gold-soft);text-align:center;line-height:1.05;margin:.5rem 1rem 0;animation:glowPulse 2.2s ease-in-out infinite}@keyframes glowPulse{0%{text-shadow:0 0 4px #ffe9c7,0 0 10px #ffdca0,0 0 18px #c41e3a}50%{text-shadow:0 0 8px #fff4d4,0 0 18px #f0c14b,0 0 32px #c41e3a}to{text-shadow:0 0 4px #ffe9c7,0 0 10px #ffdca0,0 0 18px #c41e3a}}.appBody{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:2rem;color:#fff;font-family:var(--font-body)}.loginBody{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;min-height:100vh;background-image:url(/assets/presentsBg-DcHTnDLw.jpg);background-size:cover;background-position:center;font-family:var(--font-body)}.login-container{background:linear-gradient(180deg,var(--snow) 0%,#fff6e8 100%);padding:1.25rem 1.35rem 1.5rem;border-radius:14px;border:3px solid var(--holly-red);box-shadow:0 0 0 4px var(--gold),0 12px 28px #00000047;text-align:center;width:min(70vw,500px)}.loginBody h2{font-size:clamp(2rem,5vw,2.6rem);text-align:center;color:var(--holly-red);text-shadow:1px 1px 0 var(--gold-soft);width:100%;max-width:none;margin:0 0 .75rem}.login-intro{text-align:center;max-width:36ch;margin:0 auto .25rem}.login-form{display:flex;flex-direction:column;width:100%;max-width:500px;justify-content:center;gap:1rem;text-align:left;margin:0 auto}.login-form>*{border-radius:0}.login-form label{margin:0;color:var(--pine-green);font-weight:800;font-size:.95rem;letter-spacing:.02em}.login-form input{padding:1rem;border:2px solid var(--pine-bright);outline:none;margin-top:0;font-size:16px;font-family:var(--font-body);background:#fff;border-radius:8px}.login-form input:focus{border-color:var(--holly-red);box-shadow:0 0 0 3px #f0c14b73}.login-form button{border-radius:10px;padding:1rem;background:linear-gradient(180deg,#e23a52 0%,var(--holly-red) 100%);border:2px solid var(--holly-red-deep);color:#fff;cursor:pointer;font-size:1.15rem;font-weight:800;font-family:var(--font-display);letter-spacing:.03em;box-shadow:0 4px 0 var(--holly-red-deep)}.login-form button:hover:not(:disabled){background:linear-gradient(180deg,#f04a62,#d62842)}.login-form button:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 var(--holly-red-deep)}.login-form button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.login-form button.secondary{background:linear-gradient(180deg,#2bb56a 0%,var(--pine-green) 100%);border-color:#084d2b;box-shadow:0 4px #084d2b;width:auto;color:#fff}.login-form button.secondary:hover:not(:disabled){background:linear-gradient(180deg,#34c978,#0f6b3c)}.login-form button.link-btn{background:transparent;color:var(--holly-red);border:none;padding:.25rem .4rem;font-size:.95rem;width:auto;box-shadow:none;font-family:var(--font-body)}.video-background{position:fixed;inset:0;width:100vw;height:100vh;overflow:hidden;z-index:-1;pointer-events:none}.video-background video{width:100%;height:100%;object-fit:cover;filter:brightness(.55) saturate(1.15)}.garland-box{position:relative;padding:80px}.garland{position:absolute;pointer-events:none;z-index:10}.garland.top,.garland.bottom{background-image:url(/assets/garland-horizontal-DjJTrvxk.png);background-repeat:repeat-x;background-size:contain;height:100px;width:98%}.garland.top{top:0;left:0;right:0}.garland.bottom{bottom:0;left:0;right:0}.garland.left,.garland.right{background-image:url(/assets/garland-vertical-1cd7Fz-l.png);background-repeat:repeat-y;background-size:contain;width:100px;height:90%}.garland.left{top:25px;bottom:0;left:0}.garland.right{top:25px;bottom:0;right:0}.control-bar{z-index:1000;position:fixed;left:0;top:10px;display:flex;justify-content:flex-start;gap:1rem;width:100vw;height:7vh}.control-btn{width:20%;height:100%;font-size:16px;border-radius:10px;cursor:pointer;border:none;color:#fff;font-weight:700;text-wrap:wrap;font-family:var(--font-body)}.control-btn:nth-child(odd){background-color:var(--holly-red);color:#fff}.control-btn:nth-child(2n){background-color:var(--pine-green)}.control-btn:disabled{opacity:.6;cursor:not-allowed}.signout-btn{border:none;color:#fff;font-weight:700}.add-row{display:flex;gap:.5rem}.add-row input{flex:1;min-width:0}.people-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem;font-family:var(--font-body)}.people-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;background:#f0c14b2e;border-radius:8px}.status-spun{color:var(--pine-green);font-weight:800}.status-waiting{color:#1a12088c}.form-error{color:var(--holly-red-deep);margin:0;font-weight:700}.form-notice,.hint,.back-link{margin:0;color:#1a1208c7}.back-link a,.my-wheels a{color:var(--holly-red);font-weight:800;text-decoration:none}.back-link a:hover,.my-wheels a:hover{text-decoration:underline}.my-wheels{margin:0 auto 3rem;width:min(70vw,500px)}.my-wheels ul{text-align:left;padding-left:1.2rem}.my-wheels h2{font-size:1.8rem;text-align:center;color:var(--holly-red)}.name-picker{display:flex;flex-direction:column;align-items:center;gap:.75rem}.name-picker p{margin:0;font-family:var(--font-display);font-size:1.45rem;color:var(--gold-soft);text-shadow:0 1px 4px rgba(0,0,0,.55)}.name-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:720px}.name-chip{border:2px solid var(--pine-bright);background:linear-gradient(180deg,#fff 0%,var(--gold-soft) 100%);color:var(--ink);padding:.55rem .95rem;font-weight:800;font-family:var(--font-display);font-size:1.1rem;cursor:pointer;border-radius:999px;box-shadow:0 3px #0f6b3c59}.name-chip.selected{background:linear-gradient(180deg,#e23a52 0%,var(--holly-red) 100%);color:#fff;border-color:var(--gold);box-shadow:0 3px 0 var(--holly-red-deep)}.name-chip:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.home-link{position:fixed;top:12px;left:12px;z-index:20;color:var(--gold-soft);font-weight:800;font-family:var(--font-display);font-size:1.2rem;text-decoration:none;text-shadow:0 1px 4px rgba(0,0,0,.6)}.home-link:hover{color:#fff}.banner-error{color:var(--gold-soft);font-weight:800;margin:.5rem 1rem 0;text-shadow:0 1px 3px rgba(0,0,0,.55)}.auth-bar{position:fixed;top:12px;right:12px;z-index:30;display:flex;gap:.45rem;align-items:center}.account-link,.signout-link{background:#fffaf3eb;border:2px solid var(--holly-red);color:var(--holly-red);font-family:var(--font-display);font-size:1.1rem;font-weight:700;padding:.4rem .85rem;border-radius:999px;cursor:pointer;text-decoration:none}.account-link:hover,.signout-link:hover{background:var(--holly-red);color:#fff}.wheel-manage-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}.wheel-manage-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left}.danger-link{color:var(--holly-red-deep)!important}.login-form button.danger-btn{background:linear-gradient(180deg,#7a1a28,#5a101c);border-color:#3d0a12;box-shadow:0 4px #3d0a12;color:#fff}.login-form button.danger-btn:hover:not(:disabled){background:linear-gradient(180deg,#9a2436,#7a1a28)}.loading-session{color:var(--holly-red);font-family:var(--font-display);font-size:1.8rem;font-weight:700}.auth-method-toggle{display:flex;gap:.4rem;margin:.75rem 0 1rem}.toggle-btn{flex:1;border:2px solid var(--pine-green);background:#fff;color:var(--pine-green);font-family:var(--font-display);font-size:1.05rem;font-weight:700;padding:.55rem .7rem;border-radius:999px;cursor:pointer}.toggle-btn.selected{background:linear-gradient(180deg,#2bb56a 0%,var(--pine-green) 100%);color:#fff;border-color:#084d2b}.auth-switch{margin:0;text-align:center;color:#1a1208c7}.login-form .auth-switch .link-btn{display:inline;padding:0;font-size:inherit}
