:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}body{margin:0;min-width:320px}button{font-family:inherit}:root{--bg-primary: #0a0a0a;--bg-card: #1a1a2e;--accent-1: #16213e;--accent-2: #0f3460;--highlight: #e94560;--text-primary: #ffffff;--text-secondary: #a0a0a0;--gradient-1: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-2: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-3: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--gradient-4: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);--gradient-5: linear-gradient(135deg, #fa709a 0%, #fee140 100%);--gradient-6: linear-gradient(135deg, #a18cd1 0%, #fbc2eb 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}#root{max-width:none;margin:0;padding:0;text-align:left}.playthrough{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;background:var(--bg-primary)}.slides-container{position:absolute;top:0;left:0;width:100%;height:100%}.slide{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;pointer-events:none}.slide.active{pointer-events:auto}.slide .slide-bg{opacity:0;transition:opacity .5s ease}.slide.active .slide-bg{opacity:1}.slide.exit .slide-bg{opacity:0}.slide.exit.to-paired .slide-bg{opacity:1}.slide .slide-content{opacity:0;transition:all .5s cubic-bezier(.4,0,.2,1)}.slide.active .slide-content{opacity:1;transform:translate(0)}.slide.exit .slide-content{opacity:0;transform:scale(1.02)}.slide:not(.active):not(.exit) .slide-content{transform:scale(.98)}.slide.exit.to-paired .slide-content{opacity:0;transform:translate(-100px)}.slide.from-paired .slide-content{transform:translate(100px)}.slide.active.from-paired .slide-content{opacity:1;transform:translate(0)}.slide-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.slide-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.slide-content.award-content{text-align:center}.slide-sprite{width:80px;height:80px;margin-bottom:15px;filter:drop-shadow(0 4px 20px rgba(0,0,0,.3))}.slide-logo{width:100px;height:100px;border-radius:50%;object-fit:cover;margin-bottom:20px;border:4px solid rgba(255,255,255,.3);box-shadow:0 10px 40px #0000004d;background:#ffffff1a}.slide-label{font-size:.9rem;text-transform:uppercase;letter-spacing:3px;margin-bottom:20px}.slide-value{font-size:clamp(2.5rem,8vw,5rem);font-weight:800;line-height:1.1;margin-bottom:20px;max-width:90%}.slide-detail{font-size:clamp(1rem,3vw,1.5rem);max-width:600px}.slide.intro{padding:60px 40px}.slide.intro .slide-content{max-width:900px;text-align:center}.intro-narrative-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:40px}.intro-narrative-text{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.4rem,4vw,2.2rem);font-weight:400;line-height:1.5;color:#fffffff2;text-align:center;max-width:800px;letter-spacing:.01em}.team-name-highlight{display:inline;font-style:italic;white-space:nowrap}.team-name-logo{width:1em;height:1em;border-radius:50%;object-fit:cover;vertical-align:baseline;margin-right:.25em;position:relative;top:.1em}.team-name-text{font-style:italic;font-size:inherit}.intro-narrative-stat{font-size:clamp(3rem,10vw,5rem);font-weight:800;letter-spacing:-.02em;text-shadow:0 4px 30px rgba(0,0,0,.3);animation:statPulse 2s ease-in-out infinite}@keyframes statPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.intro-narrative-subtext{font-size:clamp(1rem,2.5vw,1.3rem);color:#ffffffb3;font-style:italic;text-align:center;max-width:600px;line-height:1.6}.slide.intro-opener .intro-narrative-text{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:600}.slide.intro-transition .intro-narrative-text{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:500}.slide.intro-punching_bag .intro-narrative-subtext{font-style:normal;color:#ffffffd9}.slide.intro .slide-content{opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.4,0,.2,1)}.slide.intro.exit .slide-content{opacity:0;transform:translateY(-30px)}.slide.intro .slide-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(102,126,234,.15) 0%,transparent 60%);pointer-events:none}.slide.title-slide{padding:40px}.title-slide-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%}.title-circle-container{position:relative;width:620px;height:620px;display:flex;align-items:center;justify-content:center}.title-logos-circle{position:absolute;width:100%;height:100%}.title-team-logo{position:absolute;width:42px;height:42px;border-radius:50%;object-fit:cover;opacity:.9;transition:all .3s ease;border:2px solid rgba(255,255,255,.15);background:#1e1e28cc;box-shadow:0 2px 10px #0000004d;left:50%;top:50%;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1 * var(--radius))) rotate(calc(-1 * var(--angle)))}.title-text-group{display:flex;flex-direction:column;align-items:center;gap:0;text-align:center;max-width:280px;z-index:5}.title-football-wrapper{position:relative;margin-bottom:20px;animation:titleFootballFloat 3s ease-in-out infinite,titleTextFadeIn .8s ease-out .2s both}@keyframes titleFootballFloat{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}.title-football{font-size:clamp(44px,8vw,56px);filter:drop-shadow(0 6px 16px rgba(0,0,0,.5));display:block}.title-bow{position:absolute;top:6%;left:50%;transform:translate(-50%);width:44px;height:22px}.title-bow:before,.title-bow:after{content:"";position:absolute;width:18px;height:18px;background:linear-gradient(135deg,#ff3b3b,#c41e3a,#8b0000);border-radius:50%/60% 60% 40% 40%;box-shadow:inset -2px -2px 5px #0000004d,inset 2px 2px 5px #fff3,0 3px 8px #0000004d}.title-bow:before{left:0;transform:rotate(-25deg)}.title-bow:after{right:0;transform:rotate(25deg)}.title-football-wrapper:after{content:"";position:absolute;top:calc(6% + 6px);left:50%;transform:translate(-50%);width:10px;height:10px;background:linear-gradient(135deg,#ff3b3b,#c41e3a);border-radius:50%;box-shadow:inset -2px -2px 4px #0000004d,0 2px 6px #0000004d;z-index:1}.title-main-text{display:flex;flex-direction:column;align-items:center;gap:12px;animation:titleTextFadeIn 1s ease-out .4s both}@keyframes titleTextFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.title-league-name{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:clamp(1.6rem,5vw,2.4rem);font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 2px 4px rgba(0,0,0,.3),0 4px 20px rgba(102,126,234,.3);margin:0;line-height:1.1}.title-divider{width:60px;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);border-radius:2px}.title-season-recap{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:clamp(.9rem,2.5vw,1.1rem);font-weight:500;color:#ffffffbf;letter-spacing:.15em;text-transform:uppercase}.slide.title-slide .slide-content{opacity:0;transform:scale(.95);transition:all .8s cubic-bezier(.4,0,.2,1)}.slide.title-slide.active .slide-content{opacity:1;transform:scale(1)}.slide.title-slide.exit .slide-content{opacity:0;transform:scale(1.05)}.slide.title-slide .slide-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(102,126,234,.2) 0%,transparent 50%);pointer-events:none}.matchup-card{background:#0006;border-radius:12px;padding:16px;width:100%;max-width:340px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);margin-top:20px}.matchup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.matchup-week{font-size:.85rem;color:#ffffffb3;text-transform:uppercase;letter-spacing:1px}.matchup-badge{font-size:.7rem;font-weight:700;padding:4px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.blowout-badge{background:#e945604d;color:#e94560}.close-badge{background:#4facfe4d;color:#4facfe}.matchup-teams{display:flex;flex-direction:column;gap:8px}.matchup-team{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:8px;transition:background .2s ease}.matchup-team.winner{background:#43e97b1a;border-left:3px solid var(--accent-color, #43e97b)}.matchup-team.loser{background:#ffffff08;border-left:3px solid transparent}.team-info{display:flex;align-items:center;gap:10px}.team-logo{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#ffffff1a}.team-name{font-size:.9rem;font-weight:500;color:#ffffffe6;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-score{font-size:1.1rem;font-weight:600;color:#ffffffb3}.team-score.winning-score{color:#fff;font-weight:700}.matchup-footer{margin-top:12px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);text-align:center}.matchup-margin{font-size:.8rem;color:#fff9}.matchup-margin strong{color:var(--accent-color, #fff)}.matchup-blowout .matchup-team.winner{background:#e9456026}.matchup-close .matchup-team.winner{background:#4facfe26}.streak-display{background:#0006;border-radius:12px;padding:16px;width:100%;max-width:360px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);margin-top:20px}.streak-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.streak-team-logo{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#ffffff1a;border:2px solid var(--accent-color, #43e97b)}.streak-info{display:flex;flex-direction:column;gap:4px}.streak-team-name{font-size:1rem;font-weight:600;color:#fff}.streak-count{font-size:.85rem;font-weight:700;color:var(--accent-color, #43e97b);text-transform:uppercase;letter-spacing:.5px}.streak-matchups{display:flex;flex-direction:column;gap:6px}.streak-matchup{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:6px;background:#ffffff08}.streak-matchup.win{border-left:3px solid #43e97b}.streak-matchup.loss{border-left:3px solid #e94560}.streak-week{font-size:.75rem;color:#ffffff80;width:40px;flex-shrink:0}.streak-matchup-teams{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.streak-team-mini-logo,.streak-opp-mini-logo{width:24px;height:24px;border-radius:50%;object-fit:cover;background:#ffffff1a;flex-shrink:0}.streak-team-mini-logo{border:2px solid var(--accent-color, #43e97b)}.streak-opp-mini-logo{border:2px solid rgba(255,255,255,.2);opacity:.8}.streak-result{display:flex;align-items:center;justify-content:center;gap:4px;min-width:140px}.streak-score{font-size:.9rem;font-weight:600;color:#fff;font-variant-numeric:tabular-nums;min-width:50px;text-align:right}.streak-vs{font-size:.8rem;color:#fff6;flex-shrink:0}.streak-opp-score{font-size:.9rem;color:#fff9;font-variant-numeric:tabular-nums;min-width:50px;text-align:left}.streak-badge{font-size:.65rem;font-weight:700;padding:3px 6px;border-radius:3px;text-transform:uppercase}.win-badge{background:#43e97b33;color:#43e97b}.loss-badge{background:#e9456033;color:#e94560}.upset-display{background:#0006;border-radius:12px;padding:16px;width:100%;max-width:500px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);margin-top:20px}.upset-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.upset-week{font-size:.85rem;color:#ffffffb3;text-transform:uppercase;letter-spacing:1px}.upset-badge{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;background:#fa709a4d;color:var(--accent-color, #fa709a)}.upset-comparison{display:flex;align-items:stretch;gap:12px}.upset-section{flex:1;background:#ffffff08;border-radius:8px;padding:12px;text-align:center}.upset-section-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#ffffff80;margin-bottom:10px}.projected-section{border:1px solid rgba(255,255,255,.08)}.actual-section{border:1px solid var(--accent-color, #fa709a);background:#fa709a0d}.upset-teams{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.upset-team{display:flex;flex-direction:column;align-items:center;gap:4px}.upset-logo{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#ffffff1a}.upset-team.underdog .upset-logo{border:2px solid rgba(255,255,255,.2);opacity:.8}.upset-team.favorite .upset-logo{border:2px solid rgba(233,69,96,.5)}.upset-team.winner .upset-logo{border:2px solid var(--accent-color, #fa709a);box-shadow:0 0 10px #fa709a4d}.upset-team.loser .upset-logo{border:2px solid rgba(255,255,255,.2);opacity:.7}.upset-score{font-size:1rem;font-weight:600;color:#ffffffb3}.upset-score.winning{color:#fff;font-weight:700}.upset-score.losing{opacity:.7}.upset-vs{font-size:.85rem;color:#fff6;font-weight:500}.upset-spread,.upset-result{font-size:.75rem;color:#ffffff80;margin-top:4px}.upset-result{color:var(--accent-color, #fa709a);font-weight:600}.upset-arrow{display:flex;align-items:center;justify-content:center;color:#ffffff4d;font-size:.8rem;flex-shrink:0}.upset-footer{margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);text-align:center;display:flex;justify-content:center;align-items:center;gap:8px}.upset-margin-label{font-size:.8rem;color:#fff9}.upset-margin-value{font-size:1.1rem;font-weight:700;color:var(--accent-color, #fa709a)}@media(max-width:500px){.upset-display{max-width:100%}.upset-comparison{flex-direction:column;gap:8px}.upset-arrow{transform:rotate(90deg);padding:4px 0}.upset-logo{width:30px;height:30px}.upset-score{font-size:.9rem}}@media(max-width:600px){.slide.intro{padding:60px 20px}.intro-narrative-content{gap:16px;padding:20px}.intro-narrative-text{font-size:1.2rem;line-height:1.4}.intro-narrative-stat{font-size:2.5rem}.intro-narrative-subtext{font-size:.95rem}}.closed-book-container{perspective:1500px;display:flex;justify-content:center;align-items:center}.closed-book{position:relative;width:min(90vw,500px);height:min(75vh,650px);transform:rotateX(5deg) rotateY(-2deg);transform-style:preserve-3d}.book-cover{position:absolute;inset:0;background:linear-gradient(145deg,#8b0000,#5c1010,#3d0a0a);border-radius:5px 15px 15px 5px;box-shadow:0 20px 60px #00000080,inset 0 0 100px #0000004d;overflow:hidden}.cover-texture{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='leather'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23leather)' opacity='0.08'/%3E%3C/svg%3E");pointer-events:none}.cover-border{position:absolute;inset:20px 20px 20px 30px;border:2px solid rgba(218,165,32,.4);border-radius:5px;pointer-events:none}.cover-content{position:absolute;inset:0 20px 0 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}.cover-ornament{width:120px;height:3px;background:linear-gradient(90deg,transparent,rgba(218,165,32,.6),transparent)}.cover-ornament.top{margin-bottom:30px}.cover-ornament.bottom{margin-top:30px}.cover-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,5vw,2.8rem);font-weight:700;color:#daa520;text-shadow:0 2px 4px rgba(0,0,0,.5);line-height:1.3;margin-bottom:15px}.cover-subtitle{font-family:Georgia,Times New Roman,serif;font-size:clamp(1rem,2.5vw,1.4rem);font-weight:400;font-style:italic;color:#daa520cc;text-shadow:0 1px 3px rgba(0,0,0,.5)}.book-spine-closed{position:absolute;left:0;top:0;bottom:0;width:30px;background:linear-gradient(90deg,#3d0a0a,#5c1010,#4a0d0d);border-radius:5px 0 0 5px;transform:translateZ(-15px);box-shadow:inset -5px 0 15px #0006}.book-pages-edge{position:absolute;right:-8px;top:8px;bottom:8px;width:12px;background:repeating-linear-gradient(180deg,#f5f0e6 0px 1px,#e8e0d0 1px 2px);border-radius:0 3px 3px 0;box-shadow:2px 0 8px #0003}.book-container{perspective:1500px;display:flex;justify-content:center;align-items:center}.book{position:relative;display:flex;width:min(95vw,900px);height:min(80vh,600px);transform:rotateX(5deg);transform-style:preserve-3d}.book-spine{position:absolute;left:50%;top:0;bottom:0;width:20px;transform:translate(-50%) rotateY(90deg) translateZ(10px);background:linear-gradient(180deg,#8b4513,#654321,#8b4513);box-shadow:inset 0 0 20px #00000080}.book-page{flex:1;position:relative;background:linear-gradient(135deg,#f5f0e6,#ebe4d4,#f5f0e6);border-radius:3px 8px 8px 3px;box-shadow:inset 0 0 30px #8b45131a,0 10px 40px #0000004d;overflow:hidden}.book-page-left{border-radius:8px 3px 3px 8px;transform:rotateY(-3deg);transform-origin:right center;background:linear-gradient(135deg,#ebe4d4,#e0d8c8)}.book-page-right{transform:rotateY(3deg);transform-origin:left center}.page-texture{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none}.page-lines{position:absolute;inset:60px 40px 50px 50px;background-image:repeating-linear-gradient(transparent,transparent 44px,rgba(139,69,19,.12) 44px,rgba(139,69,19,.12) 45px);pointer-events:none}.handwritten-content{position:absolute;inset:50px 40px 50px 50px;display:flex;flex-direction:column;gap:12px}.handwritten-line{font-family:Brush Script MT,Segoe Script,Bradley Hand,cursive;font-size:clamp(1.4rem,3.5vw,2.2rem);line-height:1.9;color:#1a1a2e;margin:0}.handwritten-line.written{opacity:1}.handwritten-line.writing{animation:handwrite 1s ease-out forwards}@keyframes handwrite{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.book-page-left:after{content:"";position:absolute;top:0;right:0;bottom:0;width:40px;background:linear-gradient(to left,rgba(0,0,0,.08),transparent);pointer-events:none}.book-page-right:before{content:"";position:absolute;top:0;left:0;bottom:0;width:30px;background:linear-gradient(to right,rgba(0,0,0,.1),transparent);pointer-events:none;z-index:1}.intro-title-content{gap:0;display:flex;flex-direction:column;align-items:center}.intro-league-name{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:#fffffff2;letter-spacing:.02em;margin-bottom:30px;text-shadow:0 2px 20px rgba(0,0,0,.3)}.intro-football-wrapper{position:relative;margin-bottom:30px;animation:footballFloat 3s ease-in-out infinite}@keyframes footballFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-10px) rotate(5deg)}}.intro-football{font-size:clamp(70px,12vw,110px);filter:drop-shadow(0 10px 30px rgba(0,0,0,.4))}.intro-bow{position:absolute;top:12%;left:50%;transform:translate(-50%);width:70px;height:35px}.intro-bow:before,.intro-bow:after{content:"";position:absolute;width:30px;height:30px;background:linear-gradient(135deg,#ff3b3b,#c41e3a,#8b0000);border-radius:50%/60% 60% 40% 40%;box-shadow:inset -3px -3px 8px #0000004d,inset 3px 3px 8px #fff3,0 4px 15px #0000004d}.intro-bow:before{left:0;transform:rotate(-25deg)}.intro-bow:after{right:0;transform:rotate(25deg)}.intro-football-wrapper:after{content:"";position:absolute;top:calc(12% + 10px);left:50%;transform:translate(-50%);width:16px;height:16px;background:linear-gradient(135deg,#ff3b3b,#c41e3a);border-radius:50%;box-shadow:inset -2px -2px 5px #0000004d,0 3px 10px #0000004d;z-index:1}.intro-football-wrapper:before{content:"";position:absolute;top:calc(12% + 26px);left:50%;transform:translate(-50%);width:40px;height:40px;background:linear-gradient(160deg,transparent 45%,#c41e3a 45%,#8b0000 55%,transparent 55%),linear-gradient(200deg,transparent 45%,#c41e3a 45%,#8b0000 55%,transparent 55%);z-index:0}.slide.intro-title .intro-label{font-size:clamp(1.1rem,2.5vw,1.5rem);text-transform:uppercase;letter-spacing:10px;color:#fff9;font-weight:600;margin-bottom:8px}.slide.intro-title .intro-title{font-size:clamp(3.5rem,12vw,7rem);font-weight:800;background:linear-gradient(135deg,#fff,#c9a0ff 30%,#fff,#a0c9ff 70%,#fff);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;letter-spacing:-.02em;animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.slide.intro .slide-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(102,126,234,.12) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(118,75,162,.08) 0%,transparent 50%);pointer-events:none}.slide.intro.exit .slide-bg{opacity:1}.slide.intro .slide-content{opacity:0;transform:translateY(20px);transition:all .6s cubic-bezier(.4,0,.2,1)}.slide.intro.active .slide-content{opacity:1;transform:translateY(0)}.slide.intro.exit .slide-content{opacity:0;transform:translateY(-20px)}@media(max-width:600px){.slide.intro{padding:60px 16px 50px}.closed-book{width:85vw;height:65vh}.cover-title{font-size:1.5rem}.cover-subtitle{font-size:.95rem}.book{width:95vw;height:70vh;transform:rotateX(3deg)}.book-page-left{display:none}.book-page-right{transform:none;border-radius:8px}.book-spine{display:none}.page-lines{top:40px;left:25px;right:25px;background-image:repeating-linear-gradient(transparent,transparent 36px,rgba(139,69,19,.12) 36px,rgba(139,69,19,.12) 37px)}.handwritten-content{top:35px;left:25px;right:25px;gap:8px}.handwritten-line{font-size:1.3rem;line-height:1.7}.intro-league-name{font-size:1.4rem;margin-bottom:20px}.intro-football{font-size:60px}.intro-football-wrapper{margin-bottom:20px}.intro-bow{width:50px;height:25px;top:10%}.intro-bow:before,.intro-bow:after{width:22px;height:22px}.intro-football-wrapper:after{top:calc(10% + 8px);width:12px;height:12px}.intro-football-wrapper:before{top:calc(10% + 20px);width:30px;height:30px}.slide.intro-title .intro-label{font-size:.9rem;letter-spacing:6px}.slide.intro-title .intro-title{font-size:3rem}}.slide.commentary{text-align:left;padding:60px}.slide.commentary .slide-content{width:100%;height:100%}.commentary-layout{display:flex;align-items:center;justify-content:center;gap:60px;width:100%;max-width:1200px}.commentary-left{display:flex;flex-direction:column;align-items:center;gap:16px;flex-shrink:0}.commentary-logo{width:120px;height:120px;border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,.3);box-shadow:0 10px 40px #0000004d;background:#ffffff1a}.commentary-team-name{font-size:1.4rem;font-weight:700;text-align:center;max-width:180px}.commentary-sprite{width:64px;height:64px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.commentary-right{flex:1;max-width:600px}.commentary-text{font-family:Georgia,Times New Roman,serif;font-size:1.35rem;line-height:1.8;color:#fffffff2;font-weight:400;letter-spacing:.02em}@media(max-width:900px){.slide.commentary{padding:40px 30px}.commentary-layout{flex-direction:column;gap:30px;text-align:center}.commentary-left{flex-direction:row;gap:20px}.commentary-logo{width:80px;height:80px}.commentary-team-name{font-size:1.2rem}.commentary-sprite{width:48px;height:48px}.commentary-text{font-size:1.15rem;line-height:1.7;text-align:center}}@media(max-width:600px){.slide.commentary{padding:80px 20px 60px}.commentary-layout{gap:24px}.commentary-left{flex-direction:column;gap:12px}.commentary-logo{width:70px;height:70px}.commentary-team-name{font-size:1.1rem}.commentary-sprite{width:40px;height:40px}.commentary-text{font-size:1.05rem;line-height:1.65}}.progress-container{position:fixed;top:0;left:0;width:100%;height:4px;background:#fff3;z-index:1001}.progress-bar{height:100%;background:#fff;transition:width .3s ease}.nav-dots{position:fixed;right:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;z-index:1001}.nav-dot{width:10px;height:10px;border-radius:50%;background:#ffffff4d;cursor:pointer;transition:all .3s ease}.nav-dot.active{background:#fff;transform:scale(1.3)}.nav-dot:hover{background:#ffffffb3}.controls-hint{position:fixed;bottom:30px;left:50%;transform:translate(-50%);font-size:.85rem;opacity:.6;z-index:1001;display:flex;align-items:center;gap:20px}.controls-hint span{display:flex;align-items:center;gap:8px}.key-hint{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#fff3;border-radius:6px;font-size:.75rem}.skip-btn{position:fixed;top:20px;right:20px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 20px;border-radius:20px;cursor:pointer;font-size:.85rem;z-index:1001;transition:all .3s ease}.skip-btn:hover{background:#ffffff40}.static-page{display:none}.static-page.visible{display:block;animation:fadeIn .5s ease}.container{max-width:800px;margin:0 auto;padding:20px}header{text-align:center;padding:40px 20px 30px;background:linear-gradient(180deg,rgba(22,33,62,.6) 0%,transparent 100%);margin-bottom:30px;position:relative}header.league-header{display:flex;flex-direction:column;align-items:center;gap:20px;padding:30px 20px 25px}header h1{font-size:1.8rem;font-weight:700;margin:0;letter-spacing:-.02em;color:var(--text-primary)}header .season{font-size:.85rem;color:var(--text-secondary);font-weight:400}.header-circle-container{position:relative;width:280px;height:280px;display:flex;align-items:center;justify-content:center}.header-logos-circle{position:absolute;width:100%;height:100%}.header-team-logo{position:absolute;width:36px;height:36px;border-radius:50%;object-fit:cover;opacity:.8;transition:all .2s ease;border:2px solid rgba(255,255,255,.1);background:var(--bg-card);left:50%;top:50%;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1 * var(--radius))) rotate(calc(-1 * var(--angle)))}.header-team-logo:hover{opacity:1;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1 * var(--radius))) rotate(calc(-1 * var(--angle))) scale(1.15);border-color:#ffffff4d;z-index:10}.header-title-group{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;max-width:180px;z-index:5}.header-champion{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#ffd70014;border:1px solid rgba(255,215,0,.2);border-radius:12px}.header-champion-logo{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,215,0,.5)}.header-champion-info{text-align:left}.header-champion-label{font-size:.65rem;color:#ffd700cc;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.header-champion-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.replay-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--text-secondary);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:.75rem;display:flex;align-items:center;gap:6px;transition:all .2s ease}.replay-btn:hover{background:#ffffff1a;border-color:#fff3;color:var(--text-primary)}.replay-btn svg{width:14px;height:14px}.standings-section{margin-bottom:40px}.standings-title{text-align:center;font-size:1.5rem;font-weight:700;margin-bottom:20px;color:var(--text-primary)}.standings-table{background:var(--bg-card);border-radius:20px;overflow:hidden}.standings-row{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.05);transition:background .2s ease,transform .1s ease;min-height:80px;cursor:pointer}.standings-row:last-child{border-bottom:none}.standings-row:hover{background:#ffffff0d}.standings-row:active{transform:scale(.99)}.standings-row.champion{background:linear-gradient(90deg,rgba(255,215,0,.15) 0%,transparent 100%)}.standings-rank{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;border-radius:50%;background:var(--accent-1);margin-right:14px;flex-shrink:0}.standings-row.champion .standings-rank{background:linear-gradient(135deg,gold,orange);color:#000}.standings-sprite{width:36px;height:36px;flex-shrink:0;margin-right:10px}.standings-logo{width:48px;height:48px;border-radius:50%;object-fit:cover;margin-right:14px;flex-shrink:0;background:#ffffff1a}.standings-main{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}.standings-name{font-weight:700;font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.standings-classifier{display:flex;flex-direction:column;gap:2px}.standings-classifier-title{font-size:.85rem;font-weight:600;color:var(--highlight)}.standings-classifier-blurb{font-size:.75rem;color:var(--text-secondary);font-style:italic}.standings-stats{text-align:right;flex-shrink:0;margin-left:16px}.standings-record{font-weight:700;font-size:1.1rem}.standings-points{font-size:.8rem;color:var(--text-secondary)}.commentary-with-standings{display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;gap:80px;width:100%;max-width:1200px}.commentary-with-standings .commentary-layout{flex:1;max-width:550px}.progressive-standings{width:400px;flex-shrink:0;animation:slideInFromLeft .4s ease-out}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.progressive-standings-table{background:#0006;border-radius:16px;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.progressive-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.08);transition:all .3s ease;min-height:50px}.progressive-row:last-child{border-bottom:none}.progressive-row.latest{background:#ffffff1f;animation:pulseHighlight 1s ease-out}@keyframes pulseHighlight{0%{background:#ffffff4d}to{background:#ffffff1f}}.progressive-row.champion{background:linear-gradient(90deg,rgba(255,215,0,.2) 0%,transparent 100%)}.progressive-row.placeholder{opacity:.3}.progressive-rank{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;border-radius:50%;background:#ffffff1a;margin-right:10px;flex-shrink:0}.progressive-row.champion .progressive-rank{background:linear-gradient(135deg,gold,orange);color:#000}.progressive-sprite{width:24px;height:24px;flex-shrink:0;margin-right:8px}.progressive-logo{width:32px;height:32px;border-radius:50%;object-fit:cover;margin-right:10px;flex-shrink:0;background:#ffffff1a}.progressive-logo-placeholder{width:32px;height:32px;border-radius:50%;background:#ffffff1a;margin-right:10px;flex-shrink:0}.progressive-main{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}.progressive-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progressive-name-placeholder{width:120px;height:14px;background:#ffffff1a;border-radius:4px}.progressive-classifier{display:flex;flex-direction:column;gap:2px}.progressive-classifier-title{font-size:.7rem;font-weight:600;color:var(--highlight)}.progressive-stats{text-align:right;flex-shrink:0;margin-left:12px}.progressive-record{font-weight:600;font-size:.85rem}@media(max-width:1000px){.commentary-with-standings{flex-direction:column;align-items:center;gap:24px}.commentary-with-standings .commentary-layout{max-width:100%}.progressive-standings{width:100%;max-width:400px}}@media(max-width:900px){.progressive-row{padding:8px 12px;min-height:44px}.progressive-rank{width:24px;height:24px;font-size:.75rem}.progressive-logo{width:28px;height:28px}.progressive-name{font-size:.8rem}}@media(max-width:600px){.progressive-standings{max-width:100%}.progressive-row{padding:6px 10px;min-height:40px}.progressive-sprite{display:none}.progressive-record{font-size:.75rem}}.panel-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;z-index:2000;opacity:0;visibility:hidden;transition:all .3s ease}.panel-overlay.active{opacity:1;visibility:visible}.side-panel{position:fixed;top:0;right:0;width:450px;max-width:90vw;height:100%;background:var(--bg-card);z-index:2001;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;box-shadow:-10px 0 40px #00000080}.side-panel.active{transform:translate(0)}.panel-header{padding:24px;background:linear-gradient(135deg,var(--accent-1) 0%,var(--accent-2) 100%);position:sticky;top:0;z-index:10}.panel-close{position:absolute;top:20px;right:20px;background:#ffffff1a;border:none;color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.5rem;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.panel-close:hover{background:#fff3}.panel-team-info{display:flex;align-items:center;gap:16px;margin-bottom:12px}.panel-logo{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.3)}.panel-team-name{font-size:1.4rem;font-weight:700}.panel-record{font-size:1rem;color:var(--text-secondary)}.panel-classifier{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0003;border-radius:12px}.panel-sprite{width:48px;height:48px}.panel-classifier-text{flex:1}.panel-classifier-title{font-weight:600;color:var(--highlight);font-size:1rem}.panel-classifier-blurb{font-size:.85rem;color:var(--text-secondary);font-style:italic}.panel-body{padding:24px}.panel-section{margin-bottom:24px}.panel-section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:12px}.panel-commentary{font-size:1.05rem;line-height:1.6;color:var(--text-primary)}.panel-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel-stat{background:#ffffff0d;padding:12px;border-radius:10px}.panel-stat-value{font-size:1.3rem;font-weight:700;color:var(--highlight)}.panel-stat-label{font-size:.8rem;color:var(--text-secondary)}footer{text-align:center;padding:40px;color:var(--text-secondary);font-size:.9rem}.btn-group{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.share-btn,.replay-footer-btn,.transactions-btn{display:inline-flex;align-items:center;gap:8px;background:var(--highlight);color:#fff;padding:12px 30px;border-radius:25px;text-decoration:none;font-weight:600;cursor:pointer;border:none;font-size:1rem;transition:all .3s ease}.replay-footer-btn{background:var(--accent-2)}.transactions-btn{background:linear-gradient(135deg,#667eea,#764ba2)}.share-btn:hover,.replay-footer-btn:hover,.transactions-btn:hover{opacity:.9;transform:scale(1.05)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){header{padding:20px 15px}header.league-header{gap:16px}header h1{font-size:1.1rem}header .season{font-size:.7rem}.header-circle-container{width:220px;height:220px}.header-team-logo{width:28px;height:28px}.header-title-group{max-width:130px}.header-champion{padding:8px 12px;gap:10px}.header-champion-logo{width:30px;height:30px}.header-champion-name{font-size:.85rem}.nav-dots,.controls-hint,.replay-btn span{display:none}.standings-row{padding:12px 15px;min-height:70px}.standings-name{font-size:.95rem}.standings-sprite{width:28px;height:28px}.standings-classifier-blurb{display:none}.standings-logo{width:40px;height:40px}.standings-rank{width:32px;height:32px;font-size:.9rem}.side-panel{width:100%}}.transactions-summary{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap}.summary-stat{background:var(--bg-card);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:center;min-width:120px}.summary-stat.highlight{flex-direction:row;gap:15px;flex:1}.summary-stat .stat-logo{width:50px;height:50px;border-radius:50%;object-fit:contain;background:var(--accent-1)}.summary-stat .stat-content{display:flex;flex-direction:column}.summary-stat .stat-value{font-size:2rem;font-weight:700;color:var(--highlight)}.summary-stat .stat-label{font-size:.85rem;color:var(--text-secondary)}.transaction-section{margin-bottom:40px}.section-title{font-size:1.4rem;font-weight:600;margin-bottom:15px;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subsection-title{font-size:1rem;color:var(--text-secondary);margin:20px 0 10px}.best-pickup-card{background:linear-gradient(135deg,#43e97b26,#38f9d71a);border:1px solid rgba(67,233,123,.3);border-radius:16px;padding:24px}.pickup-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.pickup-header .player-info{display:flex;flex-direction:column}.pickup-header .player-name{font-size:1.5rem;font-weight:700}.pickup-header .player-details{color:var(--text-secondary);font-size:.9rem}.pickup-stats{text-align:right}.pickup-stats .ros-points{font-size:1.8rem;font-weight:700;color:#43e97b}.pickup-stats .ros-label{display:block;font-size:.8rem;color:var(--text-secondary)}.pickup-details{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.acquired-by{display:flex;align-items:center;gap:10px}.pickup-meta{display:flex;gap:15px;font-size:.85rem;color:var(--text-secondary)}.pickups-list{display:flex;flex-direction:column;gap:8px}.pickup-row{display:flex;align-items:center;gap:12px;background:var(--bg-card);padding:12px 16px;border-radius:10px}.pickup-row .rank{width:24px;height:24px;border-radius:50%;background:var(--accent-2);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600}.pickup-row .player-info{flex:1;display:flex;flex-direction:column}.pickup-row .player-name{font-weight:600}.pickup-row .player-details{font-size:.75rem;color:var(--text-secondary)}.pickup-row .week{font-size:.8rem;color:var(--text-secondary)}.pickup-row .points{font-weight:600;color:#43e97b}.trade-card{background:var(--bg-card);border-radius:16px;padding:20px;overflow:hidden}.trade-card.worst-trade{background:linear-gradient(135deg,#e9456026,#f5576c1a);border:1px solid rgba(233,69,96,.3)}.trade-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.trade-week{font-size:.85rem;color:var(--text-secondary)}.trade-verdict{font-weight:700;font-size:1.1rem}.trade-verdict.loss{color:#e94560}.trade-verdict.win{color:#43e97b}.trade-teams{display:flex;align-items:stretch;gap:15px}.trade-side{flex:1;background:#0003;border-radius:12px;padding:15px}.trade-team-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.trade-team-header .team-name{font-weight:600}.trade-players{display:flex;flex-direction:column;gap:6px}.trade-players .direction{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.player-chip{background:var(--accent-1);padding:6px 10px;border-radius:6px;font-size:.85rem}.side-points{margin-top:8px;font-weight:600;color:var(--text-secondary)}.trade-arrow{display:flex;align-items:center;color:var(--text-secondary)}.trades-list{display:flex;flex-direction:column;gap:8px}.trade-row{display:flex;align-items:center;gap:12px;background:var(--bg-card);padding:12px 16px;border-radius:10px}.trade-row .week{font-size:.8rem;color:var(--text-secondary);min-width:45px}.trade-summary{flex:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.trade-summary .team-name{font-weight:500}.trade-summary .arrow{color:var(--text-secondary)}.trade-row .net-points{font-weight:600}.trade-row .net-points.loss{color:#e94560}.trade-row .net-points.win{color:#43e97b}.activity-table{background:var(--bg-card);border-radius:12px;overflow:hidden}.activity-header,.activity-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:10px;padding:12px 16px;align-items:center}.activity-header{background:var(--accent-1);font-weight:600;font-size:.85rem;color:var(--text-secondary)}.activity-row{border-bottom:1px solid rgba(255,255,255,.05)}.activity-row:last-child{border-bottom:none}.activity-row .col-team{display:flex;align-items:center;gap:10px}.activity-row .rank{width:22px;height:22px;border-radius:50%;background:var(--accent-2);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.activity-row .team-name{font-weight:500}.activity-row .col-total{font-weight:700;color:var(--highlight)}.team-logo-xs{width:24px;height:24px;border-radius:50%;object-fit:contain;background:var(--accent-1)}.team-logo-sm{width:32px;height:32px;border-radius:50%;object-fit:contain;background:var(--accent-1)}.team-logo-md{width:40px;height:40px;border-radius:50%;object-fit:contain;background:var(--accent-1)}@media(max-width:768px){.transactions-summary{flex-direction:column}.summary-stat.highlight{flex-direction:column;text-align:center}.trade-teams{flex-direction:column}.trade-arrow{transform:rotate(90deg);justify-content:center;padding:10px 0}.activity-header,.activity-row{grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;font-size:.8rem;padding:10px 12px}.activity-row .team-name{font-size:.85rem}.pickup-header{flex-direction:column;gap:10px}.pickup-stats{text-align:left}.pickup-details{flex-direction:column;align-items:flex-start}.pickup-meta{flex-wrap:wrap}}
