body,html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.page-bg{-ms-overflow-style:none;align-items:center;background:radial-gradient(1200px 800px at -10% -10%,#ffffff40,#fff0 60%),linear-gradient(115deg,#ffffff24,#fff0 50%),linear-gradient(135deg,#0ea5e9,#22d3ee 35%,#34d399 70%,#a5f3fc);display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow-x:hidden;overflow-y:hidden;position:relative;scrollbar-width:none}.headline{text-wrap:balance;color:#f8fafc;font-family:Outfit,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji;font-size:calc(clamp(2.25rem, 6vw, 4rem)*.94);font-size:calc(clamp(2.25rem, 6vw, 4rem)*var(--font-scale, 1));font-weight:800;letter-spacing:.01em;margin-bottom:2rem;position:relative;text-shadow:0 8px 24px #0f172a59,0 2px 6px #0f172a4d;z-index:3}.board-wrap{--wrap-pad:1rem;--bottom-gap:max(40px,env(safe-area-inset-bottom,0px));--available-h:calc(100vh - 2rem - var(--headline-space, 0px) - var(--bottom-gap));--available-h-safe:calc(100svh - 2rem - var(--headline-space, 0px) - var(--bottom-gap));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#ffffffbf,#ffffffbf) padding-box,linear-gradient(115deg,#22d3ee,#06b6d4,#34d399) border-box;background-clip:padding-box,border-box;background-origin:border-box;border:4px solid #0000;border-radius:1.5rem;box-shadow:0 25px 50px -12px #00000040;box-sizing:border-box;height:min(calc(100vw - 2rem),var(--available-h));height:min(calc(100vw - 2rem),var(--available-h-safe,var(--available-h)));max-height:65rem;max-width:65rem;min-height:16rem;min-width:16rem;overflow:hidden;padding:var(--wrap-pad);width:min(calc(100vw - 2rem),var(--available-h));width:min(calc(100vw - 2rem),var(--available-h-safe,var(--available-h)));z-index:3}@media (min-width:768px){.board-wrap{padding:2rem}.board-grid{gap:.5rem;grid-template-columns:repeat(4,minmax(0,1fr))}.tile{padding:.75rem}}.board-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));height:100%}.tile{align-items:center;background:linear-gradient(180deg,#ffffffeb,#f1f8ffe6);border:2px solid #cbd5e1;border-radius:.75rem;box-shadow:0 1px 3px 0 #0284c714,0 1px 2px -1px #0284c70f;box-sizing:border-box;color:#0f172a;display:flex;font-size:calc(clamp(.95rem, 1.6vw, 1.15rem)*.94);font-size:calc(var(--tile-font-size, clamp(1.4rem, 1.6vw, 1.15rem))*var(--font-scale, 1));font-weight:600;justify-content:center;line-height:1.15;max-width:100%;min-width:0;overflow-wrap:break-word;perspective:800px;text-align:center;transition:transform .2s ease-out,box-shadow .2s ease-out,border-color .2s ease-out,background-color .2s ease-out;-webkit-user-select:none;user-select:none;white-space:normal;word-break:normal}.tile,.tile__inner{height:100%;position:relative}.tile__inner{transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.8,.2,1);width:100%}.tile__face{align-items:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:inherit;display:flex;inset:0;justify-content:center;max-width:100%;min-width:0;overflow:visible;padding:0;position:absolute}.tile__face--front{color:inherit}.tile--checked .tile__inner,.tile__face--back{transform:rotateY(180deg)}.tile__face--back .tile-tree{aspect-ratio:90/130;display:block;filter:drop-shadow(0 4px 6px rgba(0,0,0,.18));height:auto;position:relative;width:min(55%,220px)}.tile__face--back .tile-tree .cone{background:linear-gradient(180deg,#fff,#f3f4f6 60%,#e5e7eb);border-radius:3px;-webkit-clip-path:polygon(50% 0,100% 70%,82% 70%,100% 100%,0 100%,18% 70%,0 70%);clip-path:polygon(50% 0,100% 70%,82% 70%,100% 100%,0 100%,18% 70%,0 70%);left:50%;position:absolute;transform:translateX(-50%)}.tile__face--back .tile-tree .c1{bottom:18.462%;height:50.769%;width:100%}.tile__face--back .tile-tree .c2{bottom:52.308%;height:38.462%;width:75.556%}.tile__face--back .tile-tree .c3{bottom:79.231%;height:27.692%;width:53.333%}.tile__face--back .tile-tree .trunk{background:linear-gradient(180deg,#fff,#f3f4f6 60%,#e5e7eb);border-radius:5px;bottom:0;box-shadow:inset 0 1px 2px #0000000f;height:18.462%;left:50%;position:absolute;transform:translateX(-50%);width:20%}.tile[data-clip=true]{overflow:hidden}.tile[data-single-word=true]{hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal;white-space:nowrap;word-break:normal}.tile:hover{border-color:#22d3ee;box-shadow:0 12px 18px -6px #0284c740,0 6px 10px -6px #0284c733;transform:translateY(-2px) scale(1.03)}.tile--checked{background:linear-gradient(180deg,#99f6e4,#67e8f9);border-color:#0e7490;box-shadow:inset 0 2px 4px #0e74902e;color:#083344}.tile:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 6px #22d3ee;outline:none}.snow-layer{inset:0;pointer-events:none;position:absolute}.snowflake{animation-delay:0s,0s;animation-delay:var(--delay,0s),var(--delay,0s);animation-duration:12s,4s;animation-duration:var(--fall,12s),var(--sway,4s);animation-iteration-count:infinite,infinite;animation-name:snow-fall,snow-sway;animation-timing-function:linear,ease-in-out;background:radial-gradient(#fff,#fffc 40%,#fff0);border-radius:9999px;filter:drop-shadow(0 0 4px rgba(255,255,255,.75));height:6px;height:var(--size,6px);left:50vw;opacity:.85;opacity:var(--opacity,.85);position:absolute;top:-2vh;width:6px;width:var(--size,6px)}@keyframes snow-fall{0%{transform:translate3d(0,-10px,0)}to{transform:translate3d(0,110vh,0)}}@keyframes snow-sway{0%,to{margin-left:-10px}50%{margin-left:10px}}.text-red-700{color:#b91c1c}.mb-4{margin-bottom:1rem}.bg-white\/70{background-color:#ffffffb3}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.rounded-lg{border-radius:.5rem}.border{border:1px solid #e5e7eb}.border-red-300{border-color:#fca5a5}.flex{display:flex}.gap-3{gap:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.bg-green-700{background-color:#15803d}.bg-gray-700{background-color:#374151}.text-white{color:#fff}.hover\:bg-green-800:hover{background-color:#166534}.hover\:bg-gray-800:hover{background-color:#1f2937}.shadow{box-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a}@keyframes border-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:reduce){.board-wrap,.board-wrap:before{animation:none}}.page-bg::-webkit-scrollbar{display:none}.landing-wrap{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#ffffffbf,#ffffffbf) padding-box,linear-gradient(115deg,#22d3ee,#06b6d4,#34d399) border-box;background-clip:padding-box,border-box;border:7px solid #0000;border-radius:1.25rem;box-shadow:0 20px 40px -12px #00000040;display:flex;flex-direction:column;justify-content:center;max-width:37rem;padding:1.5rem;width:calc(100% - 2rem);z-index:3}@media (min-width:768px){.landing-wrap{padding:2rem}}@media (max-height:600px),(max-width:600px){.board-grid{gap:.5rem}.tile{-webkit-hyphens:auto;hyphens:auto;min-width:0;overflow-wrap:anywhere;padding:.75rem;white-space:normal;word-break:break-word}}.landing-wrap button{font-size:calc(clamp(.95rem, 1.2vw, 1.125rem)*.94);font-size:calc(clamp(.95rem, 1.2vw, 1.125rem)*var(--font-scale, 1));line-height:1.2;white-space:nowrap}@media (max-width:480px){.landing-wrap{max-width:20rem}}@media (min-width:481px) and (max-width:767px){.landing-wrap{max-width:28rem}}@media (min-width:768px) and (max-width:1023px){.landing-wrap{max-width:34rem}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:50}.modal-card{animation:border-shift 10s linear infinite;background:linear-gradient(#fffffff2,#fffffff2) padding-box,linear-gradient(90deg,#0ea5e9,#22d3ee,#34d399,#0ea5e9) border-box;background-clip:padding-box,border-box;background-size:auto,300% 300%;border:4px solid #0000;border-radius:1rem;box-shadow:0 20px 40px -12px #00000059;max-width:26rem;width:100%}.modal-body{padding:1rem 1rem .5rem;text-align:center}.modal-title{color:#0e7490;font-size:1.175rem;font-size:calc(1.25rem*var(--font-scale, 1));font-weight:700;margin:0 0 .5rem}.modal-text{color:#111827;font-size:.94rem;font-size:calc(1rem*var(--font-scale, 1));line-height:1.45;margin:0}.modal-actions{display:flex;gap:.5rem;justify-content:center;padding:0 1rem 1rem}.btn-primary{background-color:#0ea5e9;color:#fff}.btn-primary:hover{background-color:#0284c7}.btn-secondary{background-color:#334155;color:#fff}.btn-secondary:hover{background-color:#1f2937}.bingo-overlay{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:60}.bingo-card{animation:border-shift 10s linear infinite,pop-in .3s ease-out;background:linear-gradient(#fffffffa,#fffffffa) padding-box,linear-gradient(90deg,#0ea5e9,#22d3ee,#34d399,#0ea5e9) border-box;background-clip:padding-box,border-box;background-size:auto,300% 300%;border:5px solid #0000;border-radius:1rem;box-shadow:0 24px 48px -16px #0006;padding:2rem 1.5rem 1.5rem;position:relative;text-align:center;width:min(32rem,92vw)}.bingo-title{color:#0e7490;font-size:calc(clamp(2.5rem, 8vw, 5rem)*.94);font-size:calc(clamp(2.5rem, 8vw, 5rem)*var(--font-scale, 1));font-weight:900;letter-spacing:.06em;line-height:1;text-shadow:0 4px 0 #fff,0 8px 24px #00000040}.bingo-close{margin-top:1rem}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.tile--winning{box-shadow:0 0 0 3px #38bdf840,0 10px 20px -8px #00000059;outline:3px solid #38bdf8;position:relative}.tile--winning:after{background:radial-gradient(ellipse at center,#10b98126,#0000 70%);border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute}.error-banner{background:#ffffffb3;border:1px solid #fca5a5;border-radius:.5rem;box-shadow:0 1px 2px #0000000f;color:#b91c1c;margin-bottom:1rem;padding:.5rem .75rem}.actions{align-items:center;display:flex}.actions--landing{gap:.75rem}.actions--board{gap:.5rem;margin-bottom:.75rem}.btn{-webkit-appearance:none;appearance:none;border:none;border-radius:.5rem;box-shadow:0 1px 2px #0000001a;cursor:pointer;font-weight:600;padding:.5rem .875rem}.btn:focus{outline:2px solid #38bdf8;outline-offset:2px}.btn-login{background-color:#15803d;border-radius:.5rem;color:#fff;padding:.5rem 1rem}.btn-login:hover{background-color:#166534}.btn-export{--c1:#2563eb;--c2:#06b6d4;align-items:center;background-image:linear-gradient(135deg,var(--c1),var(--c2));border-radius:.75rem;box-shadow:0 6px 14px -6px #0284c799;color:#fff;display:inline-flex;gap:.5rem;padding:.5rem .875rem .5rem .75rem;transition:transform .12s ease,box-shadow .2s ease,filter .2s ease}.btn-export:hover{box-shadow:0 10px 20px -8px #0284c7b3;filter:saturate(1.05);transform:translateY(-1px)}.btn-export:active{transform:translateY(0)}.btn-export .icon{background:conic-gradient(from 180deg,#fff 0 25%,#fff9 0 50%,#fff 0 75%,#fff9 0);display:inline-block;flex:0 0 18px;height:18px;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black"><path d="M12 3v10.586l3.293-3.293 1.414 1.414L12 17.414l-4.707-4.707 1.414-1.414L11 13.586V3h2z"/><path d="M5 20h14v-2H5v2z"/></svg>') center/contain no-repeat;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black"><path d="M12 3v10.586l3.293-3.293 1.414 1.414L12 17.414l-4.707-4.707 1.414-1.414L11 13.586V3h2z"/><path d="M5 20h14v-2H5v2z"/></svg>') center/contain no-repeat;width:18px}.btn-export .label{font-weight:700;letter-spacing:.01em}@media (min-width:1536px){.board-grid{gap:1.25rem}.tile{font-size:calc(clamp(1.4rem, 1.6vw, 1.65rem)*.94);font-size:calc(clamp(1.4rem, 1.6vw, 1.65rem)*var(--font-scale, 1));padding:.5rem}.landing-wrap{max-width:64rem}.headline{font-size:calc(clamp(2.5rem, 4vw, 4.5rem)*.94);font-size:calc(clamp(2.5rem, 4vw, 4.5rem)*var(--font-scale, 1))}}.page-bg{isolation:isolate}.page-bg:before{animation:aurora-wave 28s ease-in-out infinite alternate;background:radial-gradient(1200px 800px at 20% -10%,#ffffff40,#fff0 60%),conic-gradient(from 180deg at 50% 30%,#10b98100 0turn,#10b98140 18deg,#2dd4bf4d .12turn,#38bdf847 .18turn,#9333ea42 .26turn,#ec48991a .33turn,#ef44441f .36turn,#2dd4bf47 .42turn,#38bdf840 .48turn,#10b98138 .55turn,#2dd4bf00 1turn);filter:blur(20px) saturate(1.1);inset:-10% -5%;opacity:.55;transform:skewY(-6deg);z-index:-1}.page-bg:after,.page-bg:before{content:"";pointer-events:none;position:absolute}.page-bg:after{animation:twinkle 18s linear infinite;background:radial-gradient(1px 1px at 10% 20%,#ffffff59 50%,#0000 51%),radial-gradient(1px 1px at 30% 40%,#ffffff47 50%,#0000 51%),radial-gradient(1px 1px at 70% 25%,#ffffff4d 50%,#0000 51%),radial-gradient(1px 1px at 85% 60%,#ffffff38 50%,#0000 51%);background-repeat:repeat;background-size:240px 240px,300px 300px,360px 360px,420px 420px;inset:0;opacity:.35;z-index:0}@keyframes aurora-wave{0%{filter:blur(22px) saturate(1.05);transform:translate3d(0,-2%,0) skewY(-6deg) scale(1.02)}50%{filter:blur(20px) saturate(1.12);transform:translate3d(2%,1%,0) skewY(-4deg) scale(1.04)}to{filter:blur(18px) saturate(1.18);transform:translate3d(-2%,3%,0) skewY(-2deg) scale(1.06)}}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:.42}}.snow-layer{z-index:1}.modal-card{background:linear-gradient(#fffffff5,#fffffff5) padding-box,linear-gradient(90deg,#22d3ee,#a78bfa,#34d399,#ef4444 40%,#22d3ee) border-box}.bingo-card{background:linear-gradient(#fffffffa,#fffffffa) padding-box,linear-gradient(90deg,#22d3ee,#a78bfa,#34d399,#ef4444 40%,#22d3ee) border-box}@media (prefers-reduced-motion:reduce){.page-bg:after,.page-bg:before{animation:none}}.snow-build-up{animation:snow-build-up 240s ease-out forwards;animation-delay:10s;background:linear-gradient(0deg,#fff 80%,#fff0);bottom:0;-webkit-clip-path:polygon(0 100%,0 80%,10% 85%,20% 80%,30% 90%,40% 80%,50% 85%,60% 80%,70% 90%,80% 80%,90% 85%,100% 80%,100% 100%);clip-path:polygon(0 100%,0 80%,10% 85%,20% 80%,30% 90%,40% 80%,50% 85%,60% 80%,70% 90%,80% 80%,90% 85%,100% 80%,100% 100%);height:0;left:0;position:absolute;width:100%;z-index:2}@keyframes snow-build-up{0%{height:0;opacity:.8}30%{opacity:1}to{height:500px;opacity:1}}@media (hover:none) and (pointer:coarse){.snow-layer,.snowflake{animation:none!important;display:none!important}.snow-build-up{animation:none!important;height:0!important}.tile:hover{transform:none!important}}.trees{display:block;inset:0;pointer-events:none;position:fixed;z-index:1}.tree{bottom:0;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25));height:0;left:50%;left:var(--x,50%);position:absolute;transform:translateX(-50%) scale(1);transform:translateX(-50%) scale(var(--scale,1));transform-origin:bottom center;width:0}.tree .cone{background:linear-gradient(180deg,#fff,#f3f4f6 60%,#e5e7eb);border-radius:3px;-webkit-clip-path:polygon(50% 0,100% 70%,82% 70%,100% 100%,0 100%,18% 70%,0 70%);clip-path:polygon(50% 0,100% 70%,82% 70%,100% 100%,0 100%,18% 70%,0 70%);left:50%;position:absolute;transform:translateX(-50%)}.tree .c1{bottom:45px;height:152px;width:208px}.tree .c2{bottom:138px;height:120px;width:160px}.tree .c3{bottom:215px;height:88px;width:112px}.tree .trunk{background:linear-gradient(180deg,#fff,#f3f4f6 60%,#e5e7eb);border-radius:8px;bottom:0;box-shadow:inset 0 2px 2px #0000000f;height:45px;width:45px}.tree .c3:after,.tree .trunk{left:50%;position:absolute;transform:translateX(-50%)}.tree .c3:after{background:radial-gradient(closest-side,#fff,#ffffffeb 60%,#fff0 70%);border-bottom-left-radius:12px;border-bottom-right-radius:12px;content:"";filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));height:12px;top:0;width:24px}.main-wrap{align-items:center;display:flex;flex-direction:column;justify-content:center;width:100%}.board-headline{margin:0 0 1rem}@media (max-height:600px),(max-width:600px){.board-headline{display:none}}:root{--headline-space:0px;--tile-font-size:clamp(0.95rem,1.6vw,1.15rem);--font-scale:0.94;--size:6px;--fall:12s;--sway:4s;--delay:0s;--opacity:0.85;--x:50%;--scale:1}.board-wrap[data-compact=true] .tile{padding:.5rem}.board-wrap[data-compact=true] .tile:hover{transform:translateY(-1px) scale(1.01)}.tile__text{display:block;max-width:100%;min-width:0;overflow-wrap:break-word;white-space:normal;word-break:normal}
/*# sourceMappingURL=main.45ae07ba.css.map*/