@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&family=Orbitron:wght@600;800&display=swap";.error-boundary-container{padding:20px;margin:20px;border:1px solid #ff6b6b;border-radius:8px;background-color:#ffeaea;color:#d63031;font-family:Arial,sans-serif}.error-boundary-container h2{margin-top:0;color:#d63031}.error-summary{margin:10px 0;font-weight:700}.error-boundary-container details{margin-top:15px}.error-boundary-container summary{cursor:pointer;font-weight:700}:root{--c-brand-1: #0080ff;--c-brand-2: #003264;--c-ink: #0f0f0f;--c-ink-muted: #2a4158;--c-danger: #df1b05;--c-accent: #54ade8;--c-card: lch(18.91% 65.26 299.63 / .196);--c-text-on-dark: #e8edf4;--c-text-muted-on-dark: #c9d3e0;--glass: lch(69.08% 49.28 256.85 / .251);--r-md: 12px;--r-sm: 8px;--shadow-1: 0 1px 2px 4px lch(0, 0, 0, .28);--shadow-2: 0 6px 18px 1px lch(0, 0, 0, .38);--grad-primary: linear-gradient(90deg, lch(69.59% 47.1 272.94 / .731), lch(48.74% 96.11 303.13 / .778), lch(32.42% 133.68 306.35 / .483));--a-dur: .6s;--a-ease: cubic-bezier(.22, .61, .36, 1);--a-delay: .2s;--a-iter: 1;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-tech: "Orbitron", system-ui, sans-serif;--lch-primary: lch(70% 52 265);--lch-secondary: lch(82% 38 240);--lch-accent: lch(58% 68 320);--lch-bg: lch(15% 6 250 / .88);--lch-card: lch(22% 8 250 / .6);--lch-border: lch(80% 10 250 / .2);--lch-text: lch(95% 4 250);--lch-muted: lch(85% 6 250 / .85);--color-health-ok: lch(76.57% 82.36 142.35);--color-health-error: lch(44.55% 89.75 39.93);--color-health-unknown: lch(33.9% 10.49 263.4);--color-focus-ring: lch(92% 18.63 221.43)}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:clamp(16.5px,1.2vw + .5rem,17px);line-height:1.65;color:var(--c-text-on-dark);background-color:#000000b0;background-image:url(/nfl_pic.png);background-repeat:no-repeat;background-position:center center;background-size:cover;background-attachment:fixed;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;width:100%;max-width:100vw;overflow-x:hidden}@media(max-width:400px){body{background-attachment:fixed}}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:1.7px}main.app-main{padding:.4rem 0;min-height:100vh;width:100%}.dashboard{position:relative;width:100%;min-height:100vh;overflow-y:visible}.container{max-width:1500px;width:100%;margin:0 auto}.hidden,.is-hidden{display:none!important}.card-shell{border-radius:var(--r-md)}button:focus-visible,[role=button]:focus-visible{outline:3px solid var(--c-brand-1, #0080ff);outline-offset:3px;border-radius:4px}.team-grid-loading,.team-grid-error{color:var(--c-text-on-dark)}.team-grid-error p{color:var(--c-text-muted-on-dark)}.anim{animation-duration:var(--a-dur);animation-timing-function:var(--a-ease);animation-delay:var(--a-delay);animation-iteration-count:var(--a-iter);animation-fill-mode:both}.a-pulse{animation-name:pulseSoft}.a-pulse--opacity{animation-name:pulseOpacity}.a-fade-in{animation-name:fadeInVar}.a-shine{animation-name:shineSweep;animation-duration:1.6s;animation-timing-function:cubic-bezier(.445,.05,.55,.95);animation-iteration-count:infinite;background-size:200% 100%}.a-glow{animation-name:outlineGlow;filter:brightness(1.02)}.a-prediction-pulse{animation-name:predictionPulse}.a-float{animation-name:cardFloat}.a-text-fade-slide{animation-name:textFadeSlide}.stagger{--a-delay: calc(var(--i, 0) * .28s)}@media(prefers-reduced-motion:reduce){.anim,[data-anim]{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@keyframes pulseSoft{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.02);opacity:.88;filter:brightness(1.03) saturate(1.02)}}@keyframes pulseOpacity{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeInVar{0%{opacity:0;transform:translate3d(var(--fade-x, 0),var(--fade-y, 10px),0) scale(var(--fade-scale, 1));filter:blur(var(--fade-blur, 0))}to{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}}@keyframes shineSweep{0%{background-position-x:0%;filter:brightness(1.01)}to{background-position-x:200%;filter:brightness(1.03)}}@keyframes outlineGlow{0%,to{outline:2px solid lch(40.92% 110.75 302.43 / .307);box-shadow:0 0 13px 1px #22447a67,0 3px 3px 1px #5ca2ff67 inset;box-shadow:0 0 13px 1px #22447a67,0 3px 3px 1px lch(65.22% 54.06 269.16 / .402) inset}50%{outline:2px solid lch(38.37% 44.95 276.48 / .457);box-shadow:0 0 10px 4px #4529cb59,0 0 0 1px #6eb2ff9b inset}}@keyframes predictionPulse{0%,to{box-shadow:0 8px 25px #9dffe7c3,0 0 20px var(--c-brand-1),inset 0 0 0 1px lch(1,124,255,.285);box-shadow:0 8px 25px lch(93.48% 35.26 176.56 / .766),0 0 20px var(--c-brand-1),inset 0 0 0 1px lch(1,124,255,.285)}50%{box-shadow:0 8px 25px lch(0,0,0,.6),0 0 30px var(--c-accent),inset 0 0 0 1px lch(255,255,255,.2)}}:root{--shadow-low: 25%;--shadow-high: 35%}.card-wrap{perspective:1000px}.card{transform-style:preserve-3d;will-change:transform,box-shadow;animation:cardFloat var(--float-dur) var(--float-ease) infinite,cardShadowPulse var(--float-dur) linear infinite;animation-delay:var(--float-delay)}@keyframes cardFloat{0%{transform:translateZ(0) rotate(0) scale(1)}50%{transform:translate3d(0,calc(var(--float-y) * -1),0) rotate(calc(var(--float-rot) * -1)) scale(var(--float-scale))}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes cardShadowPulse{0%,to{box-shadow:0 12px 24px -16px oklch(0% 0 0 / var(--shadow-low))}50%{box-shadow:0 24px 36px -18px oklch(0% 0 0 / var(--shadow-high))}}@keyframes cardPop{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(prefers-reduced-motion:reduce){.card{animation:none}}.card:hover,.card:focus-within{--float-dur: 2.4s;--float-y: 10px;--float-rot: 1deg}@keyframes textFadeSlide{0%{opacity:0;transform:translateY(8px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}:root[data-theme=light]{--lch-bg: lch(98% 4 250);--lch-card: lch(75.33% 38.77 258.92 / .7);--lch-border: lch(29.39% 32.76 270.27 / .18);--lch-text: lch(4.85% 11.48 263.18);--lch-muted: lch(30.48% 5.71 250.77 / .559)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--lch-bg: lch(98% 4 250);--lch-card: lch(77.13% 36.14 257.07 / .7);--lch-border: lch(14.15% 20.17 266.21 / .18);--lch-text: lch(2.62% 5.7 257.73);--lch-muted: lch(38.05% 5.79 247.33 / .604)}}.team-grid-header{display:flex;flex-direction:column;align-items:center;text-align:center}h1{font-family:Playfair,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Arial,sans-serif}h2.nfl-matchups{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-shadow:0 4px 14px oklch(0% 0 0 / .5);font-size:clamp(3rem,8vw + 1rem,6rem);font-family:Cinzel,serif;font-weight:800;color:#dff1ff;color:oklch(95% .05 240);margin:0;animation:textFadeSlide 1s var(--a-ease) both}p.nfl-matchups{font-size:clamp(1rem,2vw + .5rem,1.25rem);color:#b1d3ece6;margin-top:.5rem;max-width:60ch;animation:textFadeSlide 3s var(--a-ease) .2s both}section.history-chart{display:flex;flex-direction:column;background-color:#000000b3;gap:20px;font-size:1rem;border-left:2px solid oklch(70% .15 265 / .7);border-top:1px solid oklch(70% .17 269 / .5);border-radius:var(--r-sm);padding:1rem;margin:1rem;max-width:400px;animation:cardPop 1.8s var(--a-ease) both}section.team-main{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:space-between;padding:1rem}.team-grid-cards{display:contents}.matchup-time.inner-card{display:flex;flex-direction:row;gap:1rem}div.probability.home-win-prob.inner-card{font-size:1rem;color:#caf4ff;animation:a-shine 3s linear infinite}.predicted-scores.inner-card{display:flex;flex-direction:row;gap:.5rem;font-weight:600;font-size:1.5rem;color:#f0faff;color:oklch(98% .02 240);background-color:#000d18cc;background-color:oklch(15% .05 240 / .8);font-family:var(--font-tech);position:fixed;border-radius:var(--r-sm);top:1rem;right:1rem;padding:.5rem 1rem;animation:a-shine 2.5s linear infinite}.matchup-card{display:flex;flex-direction:column;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:var(--r-md);box-shadow:0 8px 24px #0000004d;padding:1rem;background-color:#00182899;background-color:oklch(20% .05 240 / .6);position:relative;width:clamp(300px,100%,380px);flex:1 1 320px;color:#e3f1fb;border:1px solid oklch(80% .05 240 / .2);--i: 0;animation:cardPop .6s var(--a-ease) calc(var(--i) * 80ms) both}.inner-card{border-radius:var(--r-sm)}.matchup-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 32px #0006;cursor:pointer;transition:transform .3s var(--a-ease),box-shadow .3s var(--a-ease)}.matchup-card.a-shine:hover{animation:shineSweep 1.2s linear infinite}.matchup-card:focus-visible{outline:3px solid var(--c-brand-1);outline-offset:4px}.matchup-card.has-prediction{transform:scale(1.03);box-shadow:0 10px 30px #00000080,0 0 25px var(--c-brand-1);border-color:var(--c-brand-1);animation:outlineGlow 2s ease-in-out infinite,predictionPulse 2s ease-in-out,cardPop .6s var(--a-ease) both}.matchup-card.has-prediction:hover{transform:scale(1.06) translateZ(10px);box-shadow:0 16px 40px #0009,0 0 35px var(--c-brand-1)}.matchup-head{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.teams-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.team-info{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1}.team-info.away{align-items:flex-start}.team-info.home{align-items:flex-end}.at-symbol{font-weight:600;color:var(--c-accent);font-size:1.2rem;font-family:var(--font-tech)}img.team-logo{width:clamp(5rem,15vw,7rem);height:auto;aspect-ratio:1 / 1;object-fit:contain;border-radius:50%;background:#0003;padding:8px;transition:transform .4s var(--a-ease),filter .4s var(--a-ease);animation:a-fade-in .8s var(--a-ease) both}img.team-logo:hover{transform:scale(1.15) rotate(5deg);filter:brightness(1.2) drop-shadow(0 0 12px var(--c-brand-1))}.kickoff{font-size:.9rem;color:var(--c-text-muted-on-dark);white-space:nowrap;font-family:var(--font-tech);animation:a-text-fade-slide 1s var(--a-ease) .3s both}.prediction{display:flex;flex-direction:column;gap:.75rem;margin-top:auto;padding-top:.75rem;border-top:1px solid oklch(80% .05 240 / .2)}.cta{margin-top:auto;padding-top:1rem;text-align:center;font-weight:600;font-family:var(--font-tech);animation:a-pulse 2s ease-in-out infinite 1s}.point-diff.inner-card{display:flex;flex-direction:column;position:fixed;top:25%;right:2rem;gap:1rem;font-weight:400;font-size:1rem;color:#e3f1fb;font-family:var(--font-tech);transition:transform .3s ease;animation:a-fade-in 1s var(--a-ease) .5s both}.point-prob{position:fixed;font-size:1rem;top:8%;left:50%;transform:translate(-50%);display:flex;flex-direction:row;background:var(--grad-primary);padding:.5rem 1rem;border-radius:var(--r-sm);animation:a-fade-in 1s var(--a-ease) .4s both}.prediction-result.inner-card{display:flex;flex-direction:column;padding:.5rem;gap:.5rem;font-weight:500;font-size:1.2rem;color:#f0faff;color:oklch(98% .02 240);font-family:var(--font-tech);transition:transform .3s ease-in-out;animation:a-glow 2.5s ease-in-out infinite}.prediction-loading{display:flex;align-items:center;gap:8px;font-family:var(--font-tech);animation:pulseOpacity 1.5s ease-in-out infinite;filter:brightness(1.05)}@media(prefers-reduced-motion:reduce){.matchup-card,.team-logo,.kickoff,.cta,.point-diff,.point-prob,.prediction-result,h2.nfl-matchups,p.nfl-matchups{transition:none;animation:none}}
