: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;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,#c41e3a40,#0000009e);display:flex;justify-content:center;align-items:center;z-index:900}.card-modal{background:linear-gradient(180deg,#fffaf3f5,#fff0c2eb);padding:2rem;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;max-width:90%;width:min(50vw,500px);height:min(70vh,800px);display:flex;flex-direction:column;justify-content:space-around;align-items:center;position:relative;font-family:var(--font-body)}.card-modal h2{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);color:var(--holly-red);margin:0;text-shadow:0 1px 0 var(--gold-soft);z-index:1}.card-modal h2 strong{color:var(--pine-green);font-size:1.15em}.card-modal .santa{position:absolute;width:150px;left:-75px;top:50px}.card-modal .christmasTree{position:absolute;width:100%;max-height:100%;bottom:0;z-index:0;margin:0;opacity:.85}.card-modal p{max-width:50%;text-align:center;margin:0;z-index:1}.card-modal p.modal-note{max-width:85%;color:var(--holly-red-deep);font-weight:700}@media(max-width:768px){.card-modal p{max-width:95%}}.modal-info{display:flex;flex-direction:column;gap:1rem;align-items:center;z-index:1}.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}.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:70vw;max-width:500px;margin:0 0 .75rem}.login-form{display:flex;flex-direction:column;width:70vw;max-width:500px;justify-content:center;gap:1rem}.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}.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}.signout-link:hover{background:var(--holly-red);color:#fff}.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}
