@property --side-blur{syntax: "<length>"; inherits: true; initial-value: 0px;}@property --side-grayscale{syntax: "<percentage>"; inherits: true; initial-value: 0%;}:root{font-family:Montserrat,Arial,sans-serif;color:#101012;background:#071b18;font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{--bg-start: #0d5046;--bg-end: #052f2d;--bg-angle: 135deg;--decor-start: #0ac57b;--decor-end: #3cffd2;--positive-start: #ff385f;--positive-end: #f02f58;width:100%;height:100dvh;min-height:100dvh;position:relative;overflow:hidden;isolation:isolate}.page-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-3;background:linear-gradient(var(--bg-angle),var(--bg-start),var(--bg-end))}.decorations{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;overflow:hidden}.decor-shape,.decor-dots{position:absolute;display:block;overflow:visible}.decor-shape svg,.decor-dots svg{width:100%;height:100%;display:block}.decor-circle-small{width:33.52vmin;height:33.52vmin;left:-16.5vmin;top:-16.5vmin}.decor-circle-large{width:61.57vmin;height:61.57vmin;right:-30vmin;bottom:-30vmin}.decor-line-double{width:115.37vmin;height:121.67vmin;right:-68vmin;top:-30vmin}.decor-line-triple{width:115.37vmin;height:127.87vmin;left:-58vmin;bottom:-30vmin}.decor-dots{width:150vmin;height:150vmin}.decor-dots-center{left:-42vmin;bottom:-50vmin}.decor-dots-top-right{right:-46vmin;top:-50vmin}.content-wrap{position:relative;z-index:1;width:100%;height:100dvh;min-height:100dvh;display:grid;place-items:center;padding:clamp(14px,2.4vh,28px) 0}.gameweek-carousel{justify-content:center;width:100vw;height:100%;min-height:0;display:flex;align-items:center;overflow:hidden;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}.carousel-track{position:relative;width:max-content;display:flex;align-items:center;justify-content:center}.gameweek-carousel.is-dragging{cursor:grabbing}.carousel-board{flex:0 0 auto;width:max-content;max-width:none;transform-origin:center center;margin:0 calc(25vw - 3%)}.carousel-board.is-side{backface-visibility:hidden}.carousel-board.is-placeholder{visibility:hidden;pointer-events:none}.carousel-board.is-side{cursor:pointer}.carousel-board.is-side .bingo-stage{pointer-events:none}.carousel-board.is-side .board-panel{box-shadow:inset 0 1px #ffffff1f,0 18px 58px #00000024}.carousel-board{--side-blur: 0px;--side-grayscale: 0%}.carousel-board.is-side{--side-blur: 8px;--side-grayscale: 100%}.gameweek-carousel.is-moving .carousel-board{--side-blur: 0px;--side-grayscale: 0%;opacity:var(--motion-opacity, 1)}.bingo-header,.cards-grid,.gameweek-summary,.deadline-countdown{filter:blur(var(--side-blur)) grayscale(var(--side-grayscale));transition:--side-blur .14s ease,--side-grayscale .14s ease}.gameweek-carousel.is-moving .board-panel{-webkit-backdrop-filter:blur(0px) saturate(100%);backdrop-filter:blur(0px) saturate(100%);background:#b9b9b9a6}.gameweek-carousel.is-moving .carousel-track{will-change:transform}.bingo-stage{position:relative;width:min(820px,calc(100vw - 48px),calc(100dvh - 170px));min-width:min(500px,calc(100vw - 16px));container-type:inline-size;display:flex;flex-direction:column;justify-content:center;gap:clamp(16px,2.5vh,32px)}.bingo-header{text-align:center;color:#fff;text-shadow:0 8px 25px rgba(0,0,0,.14)}.gameweek-label{font-size:clamp(20px,4.1vmin,42px);line-height:1;font-weight:700;letter-spacing:-.01em;color:#ffffffb8;margin-bottom:clamp(8px,1.4vmin,12px)}.bingo-header h1{margin:0;font-size:clamp(36px,6vmin,68px);line-height:.98;font-weight:800;letter-spacing:-.01em}.accent-title{display:inline-block;padding:.1em .04em;background:linear-gradient(135deg,var(--decor-start),var(--decor-end));-webkit-background-clip:text;background-clip:text;color:transparent}.board-panel{overflow:hidden;padding:clamp(12px,1.6vmin,18px);border-radius:clamp(24px,3vmin,34px);background:#e1e9e761;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(128px) saturate(120%);-webkit-backdrop-filter:blur(128px) saturate(120%);box-shadow:inset 0 1px #ffffff1f,0 25px 75px #0000001a;transition:background .14s ease,backdrop-filter .14s ease,-webkit-backdrop-filter .14s ease}.cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(7px,1.2vmin,11px)}.gameweek-summary{margin-top:clamp(10px,1.5vmin,15px);padding:0 clamp(2px,.5vmin,6px) 2px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#fffc;font-size:clamp(15px,2.5vmin,26px);line-height:1.2;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.28)}.gameweek-summary-status,.gameweek-summary-score,.gameweek-summary-not-started{white-space:nowrap}.gameweek-summary.is-not-started{justify-content:center}.gameweek-summary-not-started{text-align:center}.gameweek-summary-status.is-bingo,.gameweek-score-positive{background:linear-gradient(135deg,var(--positive-start),var(--positive-end));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 5px rgba(0,0,0,.28))}.gameweek-summary-status.is-bingo{font-weight:900;letter-spacing:.02em}.gameweek-score-positive{font-weight:900}.bingo-card{aspect-ratio:1 / 1;position:relative;container-type:inline-size;border-radius:clamp(11px,1.4vmin,16px);overflow:hidden;background:#fffffff5;box-shadow:0 6px 12px #00000024;display:flex;flex-direction:column;transition:opacity .2s ease,transform .15s ease,box-shadow .2s ease,background .2s ease}.bingo-card.positive{background:linear-gradient(145deg,var(--positive-start),var(--positive-end));box-shadow:0 8px 28px color-mix(in srgb,var(--positive-start) 55%,transparent)}.bingo-card.is-clickable{cursor:pointer}.carousel-board.is-active .bingo-card.is-clickable:not(.is-modal-source):hover{transform:translateY(-2px) scale(1.006);box-shadow:0 16px 34px #00000047,0 5px 12px #0000002e}.carousel-board.is-active .bingo-card.is-clickable:not(.is-modal-source):active{transform:translateY(-1px) scale(1.003);transition-duration:.08s}.bingo-card.is-modal-source{visibility:hidden;pointer-events:none}.card-modal-backdrop{position:fixed;z-index:60;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#06080a00;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:1;transition:background .36s ease,backdrop-filter .36s ease,-webkit-backdrop-filter .36s ease;cursor:default}.card-modal-backdrop.is-open{background:#06080ac2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.card-modal-backdrop:not(.is-open) .card-modal-card{box-shadow:0 6px 12px #00000024}.card-modal-backdrop:not(.is-open) .card-modal-card.positive{box-shadow:0 8px 28px color-mix(in srgb,var(--positive-start) 55%,transparent)}.card-modal-content{--modal-card-size: min(360px, 68vmin, calc(100vw - 48px) , calc(100dvh - 250px) );position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.card-modal-card{position:absolute;flex:0 0 auto;container-type:inline-size;opacity:1!important;pointer-events:auto;cursor:default;transform-origin:center center;transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .42s cubic-bezier(.22,1,.36,1),opacity .08s ease;box-shadow:0 28px 80px #0000006b;will-change:transform}.card-modal-close{position:absolute;z-index:2;top:calc(50% - var(--modal-card-size) / 2 - 70px);left:calc(50% + var(--modal-card-size) / 2 - 36px);width:36px;height:36px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:#121215b8;color:#fff;font-size:27px;font-weight:400;line-height:1;opacity:0;transform:translateY(8px) scale(.92);transition:opacity .22s ease .16s,transform .28s cubic-bezier(.22,1,.36,1) .16s,background .18s ease;pointer-events:auto}.card-modal-backdrop.is-open .card-modal-close{opacity:1;transform:translateY(0) scale(1)}.card-modal-close:hover{background:#202024f0}.card-modal-description{position:absolute;top:calc(50% + var(--modal-card-size) / 2);left:50%;width:min(640px,calc(100vw - 32px));min-height:1.4em;padding:0 14px;color:#fffffff0;font-size:clamp(14px,1.7vmin,18px);font-weight:600;line-height:1.5;text-align:center;white-space:pre-wrap;text-shadow:0 3px 14px rgba(0,0,0,.35);opacity:0;transform:translate(-50%,14px);transition:opacity .28s ease .18s,transform .38s cubic-bezier(.22,1,.36,1) .16s;pointer-events:none}.card-modal-backdrop.is-open .card-modal-description{opacity:1;transform:translate(-50%)}.card-modal-backdrop:not(.is-open) .card-modal-close,.card-modal-backdrop:not(.is-open) .card-modal-description{transition-delay:0s}.gameweek-carousel.has-card-modal{cursor:default}.gameweek-carousel.has-card-modal .carousel-board{pointer-events:none}body.card-modal-open{overflow:hidden!important}.bingo-card.negative{opacity:.6}.bingo-card.selected{outline:4px solid rgba(255,255,255,.96);outline-offset:3px;transform:translateY(-2px)}.admin-mode .bingo-card{cursor:pointer}.admin-mode .bingo-card:active{cursor:grabbing}.card-copy{flex:1;display:grid;place-items:center;padding:clamp(7px,1.1vmin,13px);text-align:center;white-space:pre-wrap;min-height:0}.card-copy-inner{--copy-offset: clamp(8px, 8cqw, 24px);width:100%;height:calc(100% - var(--copy-offset));margin-top:var(--copy-offset);display:grid;place-items:center;text-align:center;line-height:1.2;font-weight:600;letter-spacing:-.025em;overflow:hidden}.fixture-strip{min-height:clamp(22px,3vmin,32px);display:grid;place-items:center;padding:3px 8px;background:#0001;color:#14141685;font-size:clamp(10px,1.5vmin,15px);line-height:1;font-weight:700;text-transform:uppercase}.fixture-with-badges{display:inline-flex;align-items:center;justify-content:center;gap:.32em;white-space:nowrap}.fixture-badge{width:1.55em;height:1.55em;padding:.2em;object-fit:contain;flex:0 0 auto;border-radius:50%;background:#fffffff5;box-shadow:0 1px 2px #0003,0 2px 7px #0000002e}.fixture-separator{opacity:.72}.deadline-countdown{margin-top:clamp(6px,.8vh,10px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#fff;line-height:1.25;text-align:center;text-shadow:0 4px 16px rgba(0,0,0,.18)}.deadline-label{color:#ffffffad;font-size:clamp(12px,1.55vmin,16px);font-weight:600}.deadline-value{font-size:clamp(14px,1.9vmin,19px);font-weight:800}.bingo-stage.has-deadline{width:min(820px,calc(100vw - 48px),calc(100dvh - 280px));min-width:min(440px,calc(100vw - 16px))}.deadline-countdown{min-height:50px}.deadline-countdown.is-past{opacity:.6}.bingo-card.positive .fixture-strip{background:#00000014;color:#14141694}.og-capture{position:fixed;left:0;top:0;z-index:-1;width:1200px;height:630px;overflow:hidden;isolation:isolate;pointer-events:none;background:linear-gradient(var(--bg-angle),var(--bg-start),var(--bg-end));font-family:Montserrat,Arial,sans-serif}.og-capture .decorations{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.og-capture .decor-circle-small{width:211px;height:211px;left:-104px;top:-104px}.og-capture .decor-circle-large{width:388px;height:388px;right:-189px;bottom:-189px}.og-capture .decor-line-double{width:727px;height:767px;right:-428px;top:-189px}.og-capture .decor-line-triple{width:727px;height:806px;left:-365px;bottom:-189px}.og-capture .decor-dots{width:945px;height:945px}.og-capture .decor-dots-center{left:-265px;bottom:-315px}.og-capture .decor-dots-top-right{right:-290px;top:-315px}.og-capture-board{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.og-capture .bingo-stage,.og-capture .bingo-stage.has-deadline{width:520px;min-width:520px;gap:12px;transform:none}.og-capture .bingo-header{filter:none}.og-capture .gameweek-label{margin-bottom:7px;font-size:23px}.og-capture .bingo-header h1{font-size:39px}.og-capture .board-panel{width:auto;padding:10px;border-radius:19px}.og-capture .cards-grid{gap:6px;filter:none}.og-capture .bingo-card{border-radius:9px;transition:none}.og-capture .card-copy{padding:7px}.og-capture .card-copy-inner{--copy-offset: 10px;line-height:1.16}.og-capture .fixture-strip{min-height:20px;padding:3px 5px;font-size:9px}.og-capture .fixture-badge{display:block;width:1.45em;height:1.45em;padding:.18em}.og-capture .deadline-countdown{display:none}.admin-panel{position:fixed;z-index:20;top:18px;right:18px;bottom:18px;width:min(390px,calc(100vw - 36px));overflow:auto;color:#f5f5f6;background:#121215ed;border:1px solid rgba(255,255,255,.1);border-radius:20px;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);padding:18px;box-shadow:0 24px 80px #00000057}.admin-mode .content-wrap{padding-right:min(430px,32vw)}.admin-mode .bingo-stage{width:min(760px,calc(100vw - 470px),calc(100dvh - 170px))}.admin-topline,.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-topline strong{display:block;font-size:16px}.admin-topline small{display:block;margin-top:4px;color:#a6a6ad;font-size:11px}.admin-section{padding:16px 0;border-top:1px solid rgba(255,255,255,.09)}.admin-section:first-of-type{margin-top:12px}.admin-section h2{margin:0 0 12px;font-size:14px}.admin-field{display:grid;gap:6px;margin:10px 0;color:#bdbdc4;font-size:11px;font-weight:700}.admin-field input[type=text],.admin-field input[type=number],.admin-field textarea,.admin-field select,.section-heading-row select,.login-card input{width:100%;border:1px solid #3c3c44;border-radius:10px;background:#242429;color:#fff;padding:9px 10px;outline:none}.admin-field textarea{resize:vertical;line-height:1.35}.admin-field input[type=color]{width:100%;height:40px;padding:2px;border:1px solid #3c3c44;background:#242429;border-radius:10px}.admin-field input[type=range]{width:100%}.color-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 10px}.toggle-row{display:flex;gap:8px;align-items:center;color:#ccc;font-size:12px}.status-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.gameweek-nav-buttons,.new-gameweek-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0}.status-buttons button,.gameweek-nav-buttons button,.new-gameweek-buttons button,.admin-actions button,.ghost-button,.login-card button{border:1px solid #3c3c44;border-radius:9px;background:#292930;color:#eee;padding:9px 10px;font-size:11px;font-weight:700}.status-buttons button.active{border-color:#fff;background:#3a3a42}.gameweek-nav-buttons button:disabled{opacity:.35;cursor:default}.primary-button{background:linear-gradient(135deg,var(--decor-start),var(--decor-end))!important;color:#051a15!important;border:0!important}.primary-button:disabled{opacity:.45;cursor:default}.ghost-button{background:transparent}.admin-help{color:#87878e;font-size:10px;line-height:1.5}.admin-actions{position:sticky;bottom:-18px;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 0 0;background:linear-gradient(transparent,#121215 30%)}.admin-actions .primary-button{grid-column:1 / -1}.login-card{position:fixed;z-index:30;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));display:grid;gap:12px;color:#fff;background:#141417f0;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:22px;box-shadow:0 30px 100px #0006;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}.login-card h2,.login-card p{margin:0}.login-card p,.login-card small{color:#aaaab1;font-size:12px;line-height:1.5}.loading-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#171719;color:#fff;font-family:Montserrat,sans-serif;font-size:14px;font-weight:700;letter-spacing:-.01em}.loading-logo{width:34px;height:34px;display:block}@media(max-width:1000px){.admin-mode .content-wrap{padding-right:28px;padding-bottom:430px;height:auto;min-height:100dvh}.admin-mode .gameweek-carousel{height:100%}.admin-mode .bingo-stage{width:min(820px,calc(100vw - 48px),calc(100dvh - 170px))}.admin-panel{top:auto;left:12px;right:12px;bottom:12px;width:auto;height:390px}}@media(min-width:621px)and (max-width:1100px){.bingo-stage{width:min(820px,calc(100vw - 140px),calc(100dvh - 170px));min-width:min(500px,calc(100vw - 140px))}.admin-mode .bingo-stage{width:min(760px,calc(100vw - 140px),calc(100dvh - 170px));min-width:min(500px,calc(100vw - 140px))}}@media(max-height:720px)and (min-width:621px){body{overflow-x:hidden;overflow-y:auto}.app-shell{height:auto;min-height:700px;overflow-x:hidden;overflow-y:visible}.content-wrap{height:auto;min-height:700px;padding-block:20px}.gameweek-carousel{height:660px;min-height:660px}.bingo-stage.has-deadline{width:min(820px,calc(100vw - 140px),calc(100dvh - 280px));min-width:min(440px,calc(100vw - 140px))}}@media(max-width:620px){.carousel-board.is-side{--side-blur: 0px;--side-grayscale: 0%}.carousel-board.is-side .board-panel{-webkit-backdrop-filter:none;backdrop-filter:none}}@media(max-width:620px){.card-modal-content{--modal-card-size: min(78vw, calc(100dvh - 210px) )}.card-modal-description{font-size:13px;padding-inline:10px}.content-wrap{min-height:100dvh;height:auto;padding:10px 0;align-items:center}.gameweek-carousel{height:100%;min-height:0}.carousel-track{gap:0}.bingo-stage{width:100vw;min-width:0;padding-top:0;gap:clamp(8px,3.2cqw,14px)}.bingo-header{padding-inline:8px}.gameweek-label{font-size:clamp(14px,5.2cqw,20px);margin-bottom:clamp(5px,2cqw,8px)}.bingo-header h1{font-size:clamp(24px,8.4cqw,34px);white-space:nowrap}.board-panel{width:100vw;padding:clamp(4px,1.8cqw,6px);border-radius:clamp(10px,3.6cqw,14px)}.cards-grid{gap:clamp(4px,1.8cqw,6px)}.gameweek-summary{margin-top:7px;padding-inline:2px;gap:10px;font-size:clamp(10px,4.1cqw,14px)}.bingo-card{border-radius:clamp(7px,2.8cqw,10px);box-shadow:0 3px 7px #00000024}.bingo-card.selected{outline-width:2px;outline-offset:2px}.card-copy{padding:clamp(4px,3.8cqw,8px)}.card-copy-inner{--copy-offset: clamp(4px, 6cqw, 8px);line-height:1.12}.fixture-strip{min-height:clamp(15px,5.5cqw,20px);padding:4px;font-size:clamp(8px,8.15cqw,12px)}.fixture-badge{width:1.45em;height:1.45em;padding:.18em}.deadline-countdown{margin-top:4px;padding-inline:10px;gap:3px}.deadline-label{font-size:10px}.deadline-value{font-size:11px}.bingo-stage.has-deadline{width:min(100vw,calc(100dvh - 185px));min-width:0}.decor-circle-small{left:-18vmin;top:-18vmin}.decor-circle-large{right:-34vmin;bottom:-34vmin}.admin-mode .content-wrap{height:100dvh;min-height:100dvh;padding:10px 0 410px}.admin-mode .bingo-stage{width:100vw;min-width:0}}@media(max-width:480px){.fixture-badge{display:none}.fixture-with-badges{gap:.2em}}@media(max-width:620px)and (max-height:700px){body{overflow-x:hidden;overflow-y:auto}.app-shell{height:auto;min-height:620px;overflow-x:hidden;overflow-y:visible}.content-wrap{height:auto;min-height:620px;padding-block:10px}.gameweek-carousel{height:600px;min-height:600px}.bingo-stage.has-deadline{width:min(100vw,440px);min-width:min(100vw,360px)}}@media(max-height:860px){.fixture-badge{display:none}.fixture-with-badges{gap:.2em}}.deadline-placeholder{visibility:hidden}.capture-clean .bingo-card,.capture-clean .bingo-card:hover,.capture-clean .bingo-card:active,.og-capture .bingo-card,.og-capture .bingo-card:hover,.og-capture .bingo-card:active{transition:none!important;transform:none!important;outline:none!important}.capture-clean .bingo-card.selected{outline:none!important;transform:none!important}.og-capture.is-capturing{left:0;top:0}
