@import"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;600;700&family=Mountains+of+Christmas:wght@400;700&display=swap";.music-player[data-v-49a7d27b]{position:fixed;bottom:14px;right:14px;z-index:9999;display:flex;gap:8px}.music-play-btn[data-v-49a7d27b],.music-toggle-btn[data-v-49a7d27b]{background:#0009;color:#fff;border:none;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:14px}.music-play-btn[data-v-49a7d27b]{font-weight:600}:root{--primary-50: #ffe8eb;--primary-600: #d72638;--secondary-600: #1f8a4c;--gingerbread: #c06e2e;--icing: #fff8f0;--gold: #E58805;--surface: #0c162b;--surface-raised: #0e1c33;--background: radial-gradient(circle at 20% 20%, #102446, #091629 48%, #050c1d 100%);--slate-100: #ffe3c9;--slate-200: #ffd4ae;--slate-300: #f3b16a;--border-colour: #ffe6cf;--text-strong: #0f1f33;--text: #dfe9ff;--text-dim: #5a6f85;--danger-600: #e42222;--success-700: #1f9d53;--frost-shadow: 0 0 0 3px #fff inset, 0 10px 28px rgba(0, 0, 0, .16);--snow-sheen: 0 0 0 4px #fffdf9 inset, 0 12px 32px rgba(0, 0, 0, .12);--footer-height: 190px;--nav-stack: 180px}@media(prefers-color-scheme:dark){:root{--primary-50: #1a0d0f;--primary-600: #ff6b6b;--secondary-600: #6ee7b7;--gingerbread: #8f4b1b;--icing: #170f0b;--gold: #fbbf24;--surface: #0b0f1a;--surface-raised: #0f1725;--background: radial-gradient(circle at 20% 20%, #0b1222, #050a17 48%, #02050c 100%);--slate-100: #1c2736;--slate-200: #263445;--slate-300: #31435a;--border-colour: #263445;--text-strong: #e9fced;--text: #e6f5eb;--text-dim: #b6d9c1;--danger-600: #ff7b7b;--success-700: #4ade80}}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:"Baloo 2",Segoe UI,Comic Sans MS,system-ui,-apple-system,sans-serif;background:var(--background);color:#fff8ec;line-height:1.6;position:relative;cursor:url(/candy-cane-cursor.png) 9 0,auto}body.home-locked{overflow:hidden}@media(max-width:720px){:root{--nav-stack: 240px}}h1{font-size:1.9rem;margin:0 0 .5rem;color:var(--primary-600);font-family:Mountains of Christmas,"Baloo 2",cursive;letter-spacing:.5px}h2{font-size:1.35rem;margin:0 0 .5rem;color:var(--text-strong)}p{margin:.5rem 0}.container,.centered-content{max-width:1100px;margin:0 auto;padding:0 1.2rem}.row{display:flex;align-items:center}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.gap-2xs{gap:.25rem}.gap-xs{gap:.375rem}.gap-sm{gap:.5rem}.gap-md{gap:.75rem}.gap-lg{gap:1rem}.stack-2xs{display:grid;gap:.25rem}.stack-xs,.stack-sm{display:grid;gap:.5rem}.stack-md{display:grid;gap:.75rem}.stack-lg{display:grid;gap:1.25rem}.stack-xl{display:grid;gap:1.5rem}.grid{display:grid;gap:.75rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.page-center{display:grid;place-items:center;min-height:60vh}.auth{width:100%;max-width:480px}.muted{color:var(--text-dim)}.small{font-size:.95rem}.h3{font-size:1.1rem;margin:0}.label{font-size:.95rem;color:var(--text-dim);letter-spacing:.2px}.avatar-photo{width:36px;height:36px;border-radius:50%;object-fit:cover;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 3px #ffffffa6}.card{position:relative;padding:1.05rem 1.2rem;border:3px solid #fff;border-radius:20px;background:linear-gradient(150deg,#5b2208,#c27032 58%,#7a2e0e);color:#fff7ef;box-shadow:var(--frost-shadow),0 22px 34px #0000006b;text-shadow:0 2px 8px rgba(0,0,0,.4);overflow:hidden}.card:before{content:"";position:absolute;inset:-30% -30% auto auto;height:80%;background:radial-gradient(circle,rgba(255,255,255,.75) 0,rgba(255,255,255,.2) 55%,transparent 60%);opacity:.3;transform:rotate(-10deg);pointer-events:none}.card:after{content:"";position:absolute;top:0;left:-5%;width:110%;height:14px;background:repeating-linear-gradient(90deg,#fffffff2,#fffffff2 12px,#ffdecbe6 12px 24px);border-radius:0 0 18px 18px;opacity:.85;pointer-events:none}.card .muted{color:#ffe6d1}input,button{font:inherit}input{padding:.6rem .7rem;border:2px solid #fff;border-radius:10px;background:linear-gradient(145deg,#fff,#fffaf5);color:var(--text-strong);box-shadow:0 0 0 4px #ffd8b8 inset,0 6px 14px #00000014}input:focus{outline:3px solid rgba(215,38,56,.25);border-color:var(--primary-600)}button{padding:.65rem .9rem;border-radius:12px;border:2px solid #fff;background:linear-gradient(135deg,var(--primary-600),#ff6b6b);color:#fff;font-weight:700;letter-spacing:.2px;box-shadow:0 8px 16px #d726384d;transition:transform .12s ease,box-shadow .12s ease}button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #d7263859}button[disabled]{opacity:.7;cursor:default}.error{color:var(--danger-600)}.success{color:var(--success-700)}code{background:var(--slate-100);padding:.1rem .35rem;border-radius:6px;color:var(--text-strong);border:1px dashed var(--slate-300)}a{color:var(--primary-600);font-weight:700;text-decoration-color:var(--gold);text-decoration-thickness:3px;text-underline-offset:4px}a:hover{color:var(--secondary-600)}a,button,.button,input[type=submit],input[type=button],.nav-link.present,.activity-card,[role=button]{cursor:url(/candy-cane-cursor.png) 9 0,pointer}.app-shell{display:flex;min-height:100dvh;flex-direction:column;position:relative;overflow-x:hidden}.snow{position:fixed;inset:-600px 0 0;pointer-events:none;z-index:20;background-repeat:repeat;background-image:radial-gradient(2px 2px at 283px 252px,#ffffff80 50%,#0000),radial-gradient(3px 3px at 107px 561px,#fff9 50%,#0000),radial-gradient(2px 2px at 434px 34px,#ffffffe6 50%,#0000),radial-gradient(2px 2px at 225px 240px,#ffffff80 50%,#0000),radial-gradient(2px 2px at 205px 560px,#ffffffe6 50%,#0000),radial-gradient(5px 5px at 464px 289px,#fff9 50%,#0000),radial-gradient(2px 2px at 434px 350px,#fff9 50%,#0000),radial-gradient(4px 4px at 224px 348px,#fff9 50%,#0000),radial-gradient(2px 2px at 391px 101px,#ffffff80 50%,#0000),radial-gradient(4px 4px at 274px 48px,#ffffffb3 50%,#0000),radial-gradient(5px 5px at 132px 392px,#ffffffe6 50%,#0000),radial-gradient(2px 2px at 302px 372px,#ffffffe6 50%,#0000),radial-gradient(3px 3px at 49px 236px,#ffffff80 50%,#0000),radial-gradient(4px 4px at 242px 107px,#ffffff80 50%,#0000),radial-gradient(5px 5px at 469px 378px,#ffffffb3 50%,#0000),radial-gradient(3px 3px at 366px 217px,#ffffffb3 50%,#0000),radial-gradient(4px 4px at 179px 550px,#ffffff80 50%,#0000),radial-gradient(3px 3px at 476px 391px,#fff9 50%,#0000),radial-gradient(4px 4px at 228px 336px,#ffffffe6 50%,#0000),radial-gradient(2px 2px at 34px 325px,#fff9 50%,#0000),radial-gradient(5px 5px at 72px 221px,#ffffffb3 50%,#0000),radial-gradient(4px 4px at 515px 409px,#fff9 50%,#0000),radial-gradient(5px 5px at 276px 147px,#fff9 50%,#0000),radial-gradient(3px 3px at 554px 272px,#ffffffe6 50%,#0000),radial-gradient(5px 5px at 413px 375px,#ffffffe6 50%,#0000),radial-gradient(3px 3px at 524px 508px,#fff9 50%,#0000),radial-gradient(2px 2px at 114px 158px,#ffffff80 50%,#0000),radial-gradient(3px 3px at 68px 397px,#fffc 50%,#0000),radial-gradient(5px 5px at 484px 546px,#ffffffe6 50%,#0000),radial-gradient(4px 4px at 15px 121px,#ffffffe6 50%,#0000),radial-gradient(4px 4px at 118px 304px,#ffffffb3 50%,#0000),radial-gradient(5px 5px at 469px 8px,#fff9 50%,#0000),radial-gradient(4px 4px at 186px 523px,#ffffffe6 50%,#0000),radial-gradient(2px 2px at 521px 205px,#ffffffb3 50%,#0000),radial-gradient(3px 3px at 168px 555px,#ffffffb3 50%,#0000),radial-gradient(2px 2px at 333px 502px,#ffffffe6 50%,#0000),radial-gradient(2px 2px at 373px 316px,#ffffff80 50%,#0000),radial-gradient(3px 3px at 249px 583px,#ffffff80 50%,#0000),radial-gradient(2px 2px at 499px 72px,#ffffff80 50%,#0000),radial-gradient(3px 3px at 489px 565px,#fff9 50%,#0000),radial-gradient(3px 3px at 543px 436px,#ffffffb3 50%,#0000),radial-gradient(3px 3px at 208px 322px,#ffffffe6 50%,#0000),radial-gradient(5px 5px at 453px 534px,#ffffffb3 50%,#0000),radial-gradient(5px 5px at 258px 235px,#ffffff80 50%,#0000),radial-gradient(2px 2px at 23px 569px,#ffffffb3 50%,#0000),radial-gradient(3px 3px at 228px 10px,#ffffffe6 50%,#0000),radial-gradient(2px 2px at 236px 71px,#ffffff80 50%,#0000),radial-gradient(2px 2px at 74px 528px,#ffffffb3 50%,#0000),radial-gradient(3px 3px at 500px 222px,#ffffffb3 50%,#0000),radial-gradient(3px 3px at 593px 487px,#ffffffe6 50%,#0000),radial-gradient(3px 3px at 419px 197px,#fffc 50%,#0000),radial-gradient(2px 2px at 443px 364px,#ffffff80 50%,#0000),radial-gradient(5px 5px at 483px 60px,#fffc 50%,#0000),radial-gradient(2px 2px at 414px 349px,#ffffff80 50%,#0000),radial-gradient(2px 2px at 198px 196px,#fff9 50%,#0000),radial-gradient(5px 5px at 437px 192px,#fff9 50%,#0000),radial-gradient(4px 4px at 259px 81px,#fffc 50%,#0000),radial-gradient(5px 5px at 105px 56px,#ffffffe6 50%,#0000),radial-gradient(2px 2px at 244px 172px,#ffffff80 50%,#0000),radial-gradient(5px 5px at 497px 223px,#fffc 50%,#0000),radial-gradient(5px 5px at 173px 393px,#ffffff80 50%,#0000),radial-gradient(2px 2px at 273px 467px,#fffc 50%,#0000),radial-gradient(4px 4px at 573px 502px,#fffc 50%,#0000),radial-gradient(3px 3px at 306px 225px,#fff9 50%,#0000),radial-gradient(2px 2px at 557px 64px,#ffffffe6 50%,#0000),radial-gradient(4px 4px at 55px 492px,#ffffff80 50%,#0000),radial-gradient(3px 3px at 523px 85px,#ffffff80 50%,#0000),radial-gradient(3px 3px at 72px 243px,#ffffff80 50%,#0000),radial-gradient(5px 5px at 588px 257px,#ffffff80 50%,#0000),radial-gradient(2px 2px at 85px 431px,#ffffffe6 50%,#0000);background-size:600px 600px;animation:snow 10s linear infinite;will-change:transform}.snow:before,.snow:after{content:"";position:absolute;inset:-600px 0 0;background-image:inherit;background-size:inherit;animation:snow 10s linear infinite}.snow:after{margin-left:-200px;opacity:.4;animation-duration:20s;animation-direction:reverse;filter:blur(3px)}.snow:before{margin-left:-300px;opacity:.65;animation-duration:30s;animation-direction:reverse;filter:blur(1.5px)}.santa-flyby{position:fixed;top:clamp(3rem,8vh,7rem);left:-35%;width:clamp(180px,27vw,280px);height:clamp(90px,12vw,150px);background:url(/santa-and-sleigh-720x360.png) no-repeat center / contain;pointer-events:auto;cursor:url(/candy-cane-cursor.png) 9 0,pointer;z-index:40;animation:flyby-ltr 12s linear forwards;display:block;touch-action:manipulation}.santa-flyby.is-crashing{animation:none!important;transition:top 1s linear,left 1s linear;z-index:120}.santa-flyby:focus-visible{outline:3px solid rgba(255,255,255,.75);outline-offset:6px}.santa-flyby--rtl{animation-name:flyby-rtl;transform-origin:center;transform:scaleX(-1)}.santa-explosion{position:fixed;width:clamp(160px,20vw,320px);height:clamp(160px,20vw,320px);background:url(/nuclear-explosion-498x599.png) no-repeat center / contain;pointer-events:none;z-index:130;transform:translate(-50%,-100%);animation:santa-explosion-pop 1.1s ease-out forwards}.app-shell:before{content:"";position:fixed;pointer-events:none;z-index:2;filter:drop-shadow(0 12px 18px rgba(0,0,0,.15));top:1rem;left:-1rem;width:220px;height:260px;opacity:.28}.home-locked .app-shell:before{z-index:140;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;touch-action:none;pointer-events:none}.home-locked .home-tree{z-index:31;position:relative;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;pointer-events:none}.home-locked .home-tree-stage .home-tree-inner{position:relative;height:100%;display:inline-block;width:auto}.home-locked .home-tree-stage .home-bauble{z-index:160;pointer-events:auto}.home-locked .home-tree-stage{position:fixed;left:50%;transform:translate(-50%);bottom:0;z-index:140;width:clamp(360px,70vw,1100px);height:clamp(420px,90vh,1150px);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.home-locked .home-tree-stage .home-tree{position:relative;z-index:1;pointer-events:none}.page-container{width:100%;max-width:1100px;margin:0 auto;padding:1.75rem;padding-bottom:calc(1.75rem + var(--footer-height));flex:1 1 auto;position:relative;z-index:1;background-image:radial-gradient(circle at 15% 20%,rgba(255,255,255,.55),transparent 55%),radial-gradient(circle at 85% 10%,rgba(255,255,255,.35),transparent 52%),repeating-linear-gradient(135deg,#ffffff59 0 20px,#ffccc459 20px 40px),linear-gradient(135deg,#fff8eef7,#ffe2caf2);color:var(--text-strong);border:4px solid #fff;border-radius:22px;box-shadow:0 35px 70px #00000059,var(--snow-sheen);overflow:hidden;box-sizing:border-box}.page-container-no-bg{width:100%;max-width:1100px;margin:0 auto;padding:1.75rem;padding-bottom:calc(1.75rem + var(--footer-height));flex:1 1 auto;position:relative;z-index:1;color:var(--text-strong);overflow:hidden;box-sizing:border-box}.page-container--home{background:none;border:none;box-shadow:none;padding:0;max-width:none;width:100%;height:clamp(320px,calc(100dvh - var(--footer-height) - var(--nav-stack)),100dvh);margin:0;display:flex;align-items:stretch;justify-content:center;overflow:hidden;position:relative;box-sizing:border-box;z-index:12}.page-container--auth{background:none;border:none;box-shadow:none;max-width:none;width:100%;padding:clamp(1rem,3vw,2.5rem);display:flex;justify-content:center;align-items:flex-start}.page-loading{display:inline-flex;align-items:center;gap:.65rem;padding:.85rem 1.1rem;border:3px solid #fff;border-radius:12px;background:linear-gradient(140deg,#fefaf4,#ffe8d6);box-shadow:var(--snow-sheen)}.spinner{width:1.25rem;height:1.25rem;border:3px solid rgba(31,138,76,.18);border-top-color:var(--primary-600);border-radius:50%;animation:spin .8s linear infinite;background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.8),transparent 55%)}.footer-scenery{position:fixed;bottom:0;left:0;width:100%;height:190px;pointer-events:none;z-index:30}.snow-drift{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:120%;height:160px;background:url(/tileable-snow-drift-544x133.png) repeat-x center bottom / 360px auto;filter:drop-shadow(0 -10px 22px rgba(0,0,0,.35))}.scene-prop{position:absolute;bottom:34px;pointer-events:none;filter:drop-shadow(0 12px 16px rgba(0,0,0,.35))}.scene-prop.north-pole{left:clamp(1rem,8vw,4rem);width:clamp(140px,13vw,220px);height:clamp(150px,20vw,260px);background:url(/north-pole-sign-1318x1920.png) no-repeat left bottom / contain}.scene-prop.polar-bear{right:clamp(1rem,8vw,4rem);width:clamp(180px,20vw,320px);height:clamp(150px,18vw,260px);background-image:url(/polar-bear-800x719.png);background-position:right bottom;background-repeat:no-repeat;background-size:100% auto;pointer-events:auto;cursor:url(/candy-cane-cursor.png) 9 0,pointer;transition:transform .2s ease,filter .2s ease}.scene-prop.polar-bear.is-waving{transform:translateY(-8px) rotate(-2deg) scale(1.02);filter:drop-shadow(0 16px 24px rgba(0,0,0,.45))}.scene-prop.polar-bear.has-hat{background-image:url(/polar-bear-with-hat-800x778.png);background-position:right bottom;background-size:100% auto;height:clamp(200px,23vw,360px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes snow{to{transform:translateY(600px)}}@keyframes flyby-ltr{0%{left:-35%}to{left:135%}}@keyframes flyby-rtl{0%{left:135%}to{left:-35%}}@keyframes santa-explosion-pop{0%{opacity:0;transform:translate(-50%,-100%) scale(.4)}35%{opacity:1;transform:translate(-50%,-100%) scale(1)}to{opacity:0;transform:translate(-50%,-100%) scale(1.3)}}.button,.btn{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1rem;border-radius:14px;border:3px solid #fff;background:linear-gradient(150deg,var(--gingerbread),#a54b16);color:#fffaf2;text-decoration:none;line-height:1.2;cursor:pointer;font-weight:800;letter-spacing:.3px;box-shadow:var(--frost-shadow);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease;position:relative;overflow:hidden}.button:after,.btn:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.6) 1px,transparent 1px);background-size:14px 14px;opacity:.4;pointer-events:none}.button:hover,.btn:hover{transform:translateY(-1px);box-shadow:0 12px 18px #0000002e;filter:brightness(1.05)}.button:disabled,.btn:disabled{opacity:.7;cursor:default}.button.outline,.btn.outline{background:#fffffff0;border:3px dashed var(--primary-600);color:var(--primary-600);box-shadow:0 10px 16px #0000001f}.button.danger,.btn.danger{background:linear-gradient(135deg,#b70f2e,#e42222);border-color:#fff}button.primary,.button.primary,.btn.primary,.primary{background:linear-gradient(135deg,var(--primary-600),#ff6b6b,#ffd166);border-color:#fff;color:#fff;box-shadow:0 12px 20px #d7263859}.icon{width:24px;height:24px;display:inline-flex;color:currentColor}.icon :where(svg){width:100%;height:100%;display:block}.icon-link{display:inline-flex;align-items:center;padding:.35rem;border-radius:10px;color:var(--text-strong);text-decoration:none;background:linear-gradient(120deg,#fffc,#ffe8d6b3);border:2px solid #fff;box-shadow:0 6px 10px #0000001f}.icon-btn{background:linear-gradient(135deg,#fffdf9,#ffe7d6);border:2px solid #fff;padding:.35rem;border-radius:10px;cursor:pointer;color:var(--text-strong);box-shadow:0 6px 12px #0000001f}.icon-btn .icon{color:inherit}.icon-btn.danger,.icon-btn.danger .icon{color:var(--danger-600)}.icon-btn.danger .icon path{stroke:var(--danger-600);fill:var(--danger-600)}.icon-btn.link-action,.icon-btn.link-action .icon{color:var(--primary-600)}.icon-btn:disabled{opacity:.5;cursor:default}.repo-icon{width:16px;height:16px;display:inline-block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));opacity:.95}.icon.is-spinning{animation:spin .8s linear infinite;transform-origin:50% 50%}.icon.is-spinning :where(svg){transform-origin:50% 50%;will-change:transform}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.icon.is-spinning,.icon.is-spinning :where(svg){animation:none}}.dropdown-wrapper{position:relative}.dropdown{position:absolute;top:100%;right:0;background:linear-gradient(160deg,#fffdf8,#ffe9d6);border:3px solid #fff;border-radius:14px;min-width:180px;z-index:20;box-shadow:0 16px 32px #0000002e;overflow:hidden}.dropdown-item{display:block;width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;cursor:pointer;white-space:nowrap;font:inherit;text-decoration:none;color:var(--text-strong);position:relative}.dropdown-item+.dropdown-item{border-top:1px dashed var(--slate-200)}.dropdown-item:hover{background:linear-gradient(135deg,#d726381f,#1f8a4c1f)}.dropdown-item:disabled{opacity:.6;cursor:default}.navbar{position:sticky;top:0;z-index:20;border-bottom:6px solid #fff;background:repeating-linear-gradient(45deg,#d72638 0 16px,#fff 16px 32px,#1f8a4c 32px 48px,#fff 48px 64px);box-shadow:0 16px 32px #0000002e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding-bottom:.4rem;margin-bottom:clamp(2rem,4vw,3.5rem);overflow:visible}.navbar .nav-inner{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.35rem;margin:.6rem auto;max-width:1100px;width:calc(100% - 1.5rem);border-radius:16px;background:#ffffffe6;border:3px solid #fff;box-shadow:var(--snow-sheen);position:relative;overflow:hidden;z-index:1}.navbar .nav-inner:after{content:"";position:absolute;right:-2.5rem;top:-1rem;width:180px;height:180px;opacity:.3;pointer-events:none;z-index:0}.navbar .nav-inner>*{position:relative;z-index:1}.navbar .nav-right{margin-left:auto;display:flex;align-items:center;gap:1rem}.navbar .brand{display:inline-flex;align-items:center;color:var(--primary-600);text-decoration:none;font-weight:1200;letter-spacing:.4px;font-family:Mountains of Christmas,"Baloo 2",cursive;position:relative}.navbar .brand-mark{background:linear-gradient(120deg,#d72638,#ff6b6b,#ffd166);color:#fff;padding:.35rem .7rem;border-radius:10px;border:3px solid #fff;box-shadow:var(--frost-shadow)}.navbar .nav-links{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.nav-lights{position:absolute;bottom:-40px;left:0;width:100%;margin:0;padding:0 clamp(.2rem,2vw,1rem);display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(1.1rem,1.8vw,2.4rem);list-style:none;pointer-events:auto;z-index:5}.nav-lights:before{content:"";position:absolute;top:-8px;left:clamp(.2rem,2vw,1rem);right:clamp(.2rem,2vw,1rem);height:18px;border-bottom:3px solid #1b1b1b;border-radius:999px;pointer-events:none}.nav-lights__bulb{width:12px;height:28px;flex:0 0 auto;border-radius:50%;position:relative;margin-top:18px;background:var(--glow-color, #ff2d55);box-shadow:0 5px 22px 3px var(--glow-color, #ff2d55);animation:nav-light-pulse var(--pulse-duration, 1.8s) ease-in-out infinite;transition:opacity .25s ease,filter .25s ease,box-shadow .25s ease;cursor:url(/candy-cane-cursor.png) 9 0,pointer}.nav-lights__bulb:before{content:"";position:absolute;width:10px;height:9px;border-radius:3px;top:-4px;left:1px;background:#1b1b1b}.nav-lights__bulb:after{content:"";position:absolute;top:-14px;left:calc(50% + 6px);width:clamp(32px,4vw,60px);height:18px;border-bottom:2px solid #1b1b1b;border-radius:50%;transform:translate(0);pointer-events:none}.nav-lights__bulb:last-child:after{content:none}.nav-lights__bulb.is-off{opacity:.35;filter:grayscale(1);box-shadow:none;animation-play-state:paused}.nav-lights__bulb--candy{--glow-color: #ff2d55;--glow-faint: rgba(255, 45, 85, .25);--pulse-duration: 1.6s}.nav-lights__bulb--mint{--glow-color: #38ef8d;--glow-faint: rgba(56, 239, 141, .3);--pulse-duration: 2s}.nav-lights__bulb--gold{--glow-color: #ffd166;--glow-faint: rgba(255, 209, 102, .35);--pulse-duration: 1.4s}.nav-lights__bulb--frost{--glow-color: #70f0ff;--glow-faint: rgba(112, 240, 255, .3);--pulse-duration: 2.2s}.nav-lights__bulb--berry{--glow-color: #ff6bd5;--glow-faint: rgba(255, 107, 213, .25);--pulse-duration: 1.7s}.nav-lights__bulb--aqua{--glow-color: #6efaff;--glow-faint: rgba(110, 250, 255, .3);--pulse-duration: 2.4s}@keyframes nav-light-pulse{0%,to{background:var(--glow-color);box-shadow:0 5px 22px 3px var(--glow-color);opacity:1}50%{background:var(--glow-faint, rgba(255, 255, 255, .35));box-shadow:0 2px 8px 1px var(--glow-faint, rgba(255, 255, 255, .2));opacity:.6}}.navbar .nav-link.present{position:relative;width:80px;height:100px;padding:.4rem .3rem .5rem;border-radius:18px;border:3px solid #fff;background:linear-gradient(145deg,#d72638,#ff7b7b,#ffd166);color:#fff;text-decoration:none;font-weight:700;letter-spacing:.3px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;box-shadow:0 14px 22px #00000040;transition:transform .14s ease,box-shadow .14s ease}.navbar .nav-link.present:before{content:"";position:absolute;top:8px;width:44px;height:44px;background:url(/fancy-present-360x360.png) no-repeat center / cover;opacity:.9;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}.navbar .nav-link.present:hover,.navbar .nav-link.present.router-link-active{transform:translateY(-3px);box-shadow:0 18px 28px #00000059}.navbar .nav-link.present.nav-cta{background:linear-gradient(145deg,#ff7b7b,#ffd166);color:#5c120d}.navbar .nav-link.present.nav-logout{border:3px solid #fff;background:linear-gradient(145deg,#0f8c4c,#4fce8a);color:#10301c;cursor:pointer;font:inherit}.navbar .nav-link.present.nav-logout:before{background-image:url(/gift-stack-placeholder.svg);opacity:.8}.navbar .nav-meta{margin:.2rem 0 0;color:var(--secondary-600);text-align:right}.site-footer{margin-top:auto;border-top:0;background:linear-gradient(180deg,#fffaf4,#fbead9,#f4d6c1);position:relative;color:#1b2232;overflow:hidden;box-shadow:inset 0 1px #ffffffb3,0 -12px 30px #0003}.site-footer .footer-inner{display:flex;gap:1rem;padding:1.8rem 1.5rem 2rem;align-items:center;justify-content:space-between;flex-wrap:wrap;position:relative;z-index:1}.site-footer .muted{color:#4a546b}.card-inner{padding:.85rem;border:2px dashed #fff;border-radius:12px;background:#ffffff14;box-shadow:inset 0 0 0 2px #ffffff1f}.status-dot{width:12px;height:12px;border-radius:50%;display:inline-block;background:radial-gradient(circle at 30% 30%,#fff,var(--slate-300));border:2px solid #fff;box-shadow:0 0 0 2px #ffffff8c,0 4px 10px #00000026}.status-dot.ok{background:radial-gradient(circle at 30% 30%,#fff,var(--success-700))}.status-dot.fail{background:radial-gradient(circle at 30% 30%,#fff,var(--danger-600))}.status-dot.unknown{background:radial-gradient(circle at 30% 30%,#fff,var(--slate-300))}.status-dot.warn{background:radial-gradient(circle at 30% 30%,#fff,#ffd166)}.header-bar{display:flex;align-items:center;justify-content:space-between}.page-title{margin:0}.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.code{background:linear-gradient(135deg,#fffdf9,#ffe8d6);color:var(--text-strong);padding:.9rem;border-radius:12px;overflow:auto;max-height:60vh;border:3px dashed #fff;box-shadow:0 10px 18px #0000001a}.home-view{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;padding:clamp(.5rem,3vw,2.5rem);box-sizing:border-box}.home-tree-stage{position:relative;width:clamp(360px,70vw,1100px);height:clamp(420px,90vh,1150px);max-height:100%;display:flex;align-items:flex-end;justify-content:center;z-index:0}.home-tree-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.05),transparent 55%);pointer-events:none}.home-tree{height:100%;width:auto;max-width:100%;max-height:100%;aspect-ratio:1796 / 2010;object-fit:contain;display:block;position:relative;z-index:2}.home-tree-inner{position:relative;height:100%;display:inline-flex;width:auto;flex-direction:column;justify-content:flex-end;align-items:center}.home-bauble{position:absolute;width:clamp(24px,3vw,40px);height:clamp(24px,3vw,40px);transform:translate(-50%,-50%);border-radius:50%;border:3px solid rgba(255,255,255,.9);background:radial-gradient(circle at 30% 30%,#fffffff2,#ffffff0d 35%),linear-gradient(135deg,#ffffffd9,#fff0 80%),linear-gradient(135deg,#d72638f2,#ff6b6bf2);color:#fff;text-decoration:none;font-weight:700;text-align:center;display:inline-flex;align-items:center;justify-content:center;padding:.3rem;box-shadow:0 16px 28px #00000059;transition:transform .16s ease,box-shadow .16s ease;z-index:3}.home-bauble span{display:block;font-size:clamp(.6rem,1.6vw,.85rem);line-height:1.1;text-transform:uppercase;letter-spacing:.5px;color:#ffd166;text-shadow:0 0 2px rgba(255,255,255,.5),0 2px 8px rgba(0,0,0,.45)}.home-bauble:hover{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 22px 40px #00000073}.home-bauble:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:720px){.home-tree-stage{width:min(90vw,520px);height:auto}.home-tree{width:100%;height:auto}.home-tree-inner{display:block;width:100%;height:auto}}@media(max-width:720px){.page-container--home .home-tree-stage,.home-locked .home-tree-stage{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(90vw,520px);height:auto;max-height:calc(100vh - var(--footer-height, 190px));display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.page-container--home .home-tree,.home-locked .home-tree{align-self:flex-end}}.page-container--home .home-tree-stage{position:fixed;left:50%;transform:translate(-50%);bottom:0;z-index:140;width:clamp(360px,70vw,1100px);height:clamp(420px,90vh,1150px);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.page-container--home .home-tree{position:relative;z-index:1;pointer-events:none}.page-container--home .home-tree-stage .home-bauble{z-index:160;pointer-events:auto}.auth-view{max-width:640px;margin:0 auto;display:grid;gap:1.5rem}.auth-card{display:grid;gap:.9rem;background:#a35422;background-blend-mode:lighten}.auth-card input{width:100%;color:#000;caret-color:#000}.auth-card input::placeholder{color:#0000008c}.status-block{min-height:1.5rem}.status-block code{display:inline-block;padding:.4rem .6rem;background:#0c162bd9;color:#fff;border-radius:8px;font-size:.9rem}.feature-view{max-width:860px;margin:0 auto;display:grid;gap:1.5rem;padding-bottom:1rem}.feature-header h1{margin-bottom:.25rem}.feature-card{display:grid;gap:1rem;background:linear-gradient(145deg,#fffffffa,#ffecd5eb);color:var(--text-strong)}.feature-list{list-style:disc;padding-left:1.5rem;margin:0;display:grid;gap:.35rem}.charades-fullscreen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;padding:2rem}.charade-title{font-size:clamp(2rem,8vw,5rem);margin:0;font-weight:700}.charade-hint{margin-top:2rem;font-size:1.25rem;opacity:.7}.leaderboards{display:grid;gap:1.5rem}.leaderboards__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.leaderboards .eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:#ffe9c8;margin:0}.refresh-btn{align-self:center;min-width:140px}.ginger-grid{display:grid;grid-template-columns:1fr;gap:1rem}.ginger-card{position:relative;padding:1.25rem;border-radius:1rem;background:linear-gradient(180deg,#c17036,#9d572a);box-shadow:0 14px 32px #26120838,inset 0 1px #ffffff2e;color:#fffaf5;overflow:hidden}.ginger-card:before{content:"";position:absolute;inset:0;border-radius:1rem;padding:6px;background:linear-gradient(135deg,#ffffff8c,#fff0),radial-gradient(circle at 20% 20%,rgba(255,255,255,.2),transparent 35%),radial-gradient(circle at 80% 10%,rgba(255,255,255,.12),transparent 40%);mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.ginger-card__header h2{margin:0;color:#fffaf5}.leader-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.leader-row{display:grid;grid-template-columns:64px 1fr auto;align-items:center;background:#ffffff14;border:1px dashed rgba(255,255,255,.18);border-radius:12px;padding:.6rem .75rem;color:#fffaf5}.leader-row.is-current{border:1px solid #ffe9a3;box-shadow:0 6px 18px #ffe9a333;background:linear-gradient(90deg,#ffe9a329,#ffffff14)}.leader-row.is-ellipsis{justify-content:center;text-align:center;letter-spacing:4px;color:#fffc}.leader-rank{font-weight:800;font-size:.95rem}.leader-user{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-score{font-variant-numeric:tabular-nums;font-weight:700}.callout{padding:.75rem 1rem;border-radius:12px;background:#ffffffb3}.callout--error{background:#fff1f0;color:#9c1c1c;border:1px solid #f2c7c7}.leaderboards__headline{margin:0;font-size:1.2rem;font-weight:800}.outside-note{margin-top:.75rem}@media(max-width:600px){.leader-row{grid-template-columns:56px 1fr;grid-template-areas:"rank user" "rank score";row-gap:.25rem}.leader-score{grid-area:score;justify-self:end}}
