.banner{width:100%;background-color:var(--habs-red);color:var(--white);text-align:center;padding:8px 0;box-shadow:0 4px 6px #0000001a;text-decoration:none;transition:transform .3s ease,background-color .3s ease}.banner:hover{transform:scale(1.05);background-color:var(--bright-red)}.banner-content{max-width:1200px;margin:0 auto;padding:0 20px}.banner-title,.banner-subtitle{text-decoration:underline;text-decoration-color:var(--white);font-weight:700;margin:0}.banner-title{font-size:2rem}.banner-subtitle{font-size:1rem;margin-top:5px}@media(min-width:769px)and (max-width:1024px){.banner-content{padding:0 15px}.banner-title{font-size:1.75rem}.banner-subtitle{font-size:.9rem}}@media(max-width:768px){.banner{padding:6px 0}.banner-content{padding:0 10px}.banner-title{font-size:1.5rem}.banner-subtitle{font-size:.85rem}}@media(max-width:480px){.banner{padding:5px 0}.banner-content{padding:0 5px}.banner-title{font-size:1.3rem}.banner-subtitle{font-size:.75rem}}:root{--habs-blue: #192168;--habs-red: #AF1E2D;--habs-red-bright: #FF4C4C;--read-check: #12703F;--bg: #f4f5f7;--surface: #ffffff;--border: #a8afba;--card-border: #3a3f47;--card-border-width: 1.5px;--text-primary: #1a1a1f;--text-secondary: #2f343c;--text-muted: #5f6672;--shadow-sm: 0 1px 3px rgba(16, 24, 40, .12), 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 6px 20px rgba(16, 24, 40, .12);--radius: 14px;--gray-light: var(--bg);--white: var(--surface);--black: var(--text-primary);--background-primary: var(--surface);--link-default: var(--text-primary);--link-hover: var(--habs-red);--focus-outline: var(--habs-red-bright);--bright-red: var(--habs-red-bright)}.shimmer{position:relative;overflow:hidden;isolation:isolate}.shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translate(-120%);animation:shimmer-sweep 2.2s ease-in-out .8s 3;pointer-events:none}.shimmer[aria-expanded=true]:after{animation:none}@keyframes shimmer-sweep{0%{transform:translate(-120%)}60%,to{transform:translate(120%)}}@media(prefers-reduced-motion:reduce){.shimmer:after{animation:none}}.recap{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"kick  reads" "head  reads" "stars reads" "inj   reads" "foot  foot" "box   box";grid-template-rows:auto auto auto 1fr auto auto;column-gap:24px;row-gap:12px;padding:14px 16px 12px 20px;background:var(--surface);border:var(--card-border-width) solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;text-align:left;color:var(--text-primary);line-height:1.35}.recap:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--habs-blue)}.recap h2,.recap h3,.recap p,.recap ol,.recap ul{margin:0}.recap-kicker{grid-area:kick;align-self:center}.recap .recap-title{grid-area:head;margin-top:-8px}.recap-kicker,.recap-label,.recap-block h3{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.recap-title{font-family:Anton,Impact,sans-serif;font-weight:400;font-size:1.45rem;line-height:1.15;letter-spacing:.01em;color:var(--habs-blue);text-wrap:balance}.recap-stars-wrap{grid-area:stars;display:flex;flex-direction:column;gap:4px}.recap-label{color:var(--habs-blue)}.recap-stars{list-style:none;padding:0;display:flex;flex-direction:column;gap:3px;font-size:.88rem}.recap-stars li{display:flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap}.recap-star-rank{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--habs-red);color:#fff;font-size:.7rem;font-weight:800;transform:translateY(-1px)}.recap-star-line{color:var(--text-secondary);font-size:.8rem;overflow:hidden;text-overflow:ellipsis}.recap-injuries{grid-area:inj;display:flex;flex-direction:column;gap:4px;min-width:0}.recap-injuries .recap-label{color:var(--habs-red)}.recap-injured{list-style:none;padding:0;display:flex;flex-direction:column;gap:3px;font-size:.88rem}.recap-injured li{display:flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap}.recap-injured a{overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);font-weight:700;text-decoration:none}.recap-injured a:hover,.recap-injured a:focus-visible{color:var(--link-hover);text-decoration:underline}.recap-injured{min-width:0}.recap-injured li{max-width:100%}.recap-injured a{flex:none;max-width:100%}.recap-injured .recap-source{flex:0 1 auto;min-width:0;max-width:none}.recap-reads{grid-area:reads;display:flex;flex-direction:column;gap:4px;min-width:0}.recap-band{padding:4px 10px;border-left:3px solid var(--habs-red);border-radius:2px;background:linear-gradient(90deg,#af1e2d29,#af1e2d00 85%);color:var(--habs-red);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.recap-block{display:flex;flex-direction:column;gap:2px;min-width:0}.recap-block h3{color:var(--habs-blue)}.recap-links{list-style:none;padding:0;display:flex;flex-direction:column}.recap-links li{display:flex;align-items:baseline;gap:8px;min-width:0;padding:5px 0}.recap-links .recap-source{order:2}.recap-links li+li{border-top:1px solid var(--bg)}.recap-links a{flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);font-size:.94rem;font-weight:600;text-decoration:none}.recap-links a:hover,.recap-links a:focus-visible{color:var(--link-hover);text-decoration:underline}.recap-source{flex:none;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:.75rem}.recap-foot{grid-area:foot;display:flex;align-items:center;padding-top:10px;border-top:1px solid var(--border)}.recap-toggle{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border:1px solid var(--habs-blue);border-radius:999px;background:var(--habs-blue);color:#fff;font:inherit;font-size:13px;font-weight:600;line-height:normal;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}@media(hover:hover){.recap-toggle:hover{background:var(--habs-red);border-color:var(--habs-red)}}.recap-toggle:focus-visible{outline:2px solid var(--habs-red);outline-offset:2px}.recap-chevron{width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .15s ease}.recap.is-open .recap-chevron{transform:rotate(-135deg) translate(-2px,-2px)}.recap-credit{grid-column:1 / -1;font-size:.72rem;color:var(--text-secondary)}.recap-box{grid-area:box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 24px;align-items:start}.recap-box[hidden]{display:none}.recap-shots{grid-column:1 / -1;font-size:.9rem}.recap-shots b{margin-right:6px}.recap-box .recap-block{gap:6px}.recap-box .recap-block:last-child:nth-child(2n){grid-column:1 / -1}.recap-goals,.recap-goalies{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.88rem}.recap-goal{display:grid;grid-template-columns:5.4em 2.6em 1fr;gap:0 8px;align-items:baseline}.recap-goal-when{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.recap-goal-team{font-weight:700;color:var(--text-secondary)}.recap-goal--us .recap-goal-team{color:var(--habs-red)}.recap-goal-who{min-width:0}.recap-assists{display:block;color:var(--text-secondary);font-size:.8rem}.recap-goalies li{display:grid;grid-template-columns:2.6em 1fr;gap:8px}.recap-tag{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid var(--border);border-radius:4px;font-size:.68rem;font-weight:700;color:var(--text-secondary);vertical-align:1px}.recap-box .recap-phone-only{display:none}@media(max-width:640px){.recap-box section.recap-phone-only{display:flex}.recap-box li.recap-phone-only{display:-webkit-box}.recap-box:not([hidden]){padding-top:10px;border-top:1px solid var(--border)}.recap-kicker{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.05em;font-size:.66rem}.recap-stars{font-size:.82rem;gap:2px 10px}.recap-reads .recap-desktop-only{display:none}.recap{grid-template-columns:minmax(0,1fr);grid-template-areas:"kick" "head" "stars" "inj" "reads" "foot" "box";grid-template-rows:none;row-gap:7px;padding:11px 12px 8px 16px}.recap-title{font-size:1.25rem}.recap-stars-wrap .recap-label{display:none}.recap-stars{flex-direction:row;flex-wrap:wrap}.recap-star-line{display:none}.recap-reads{gap:2px}.recap-band{padding:2px 8px;font-size:.7rem}.recap-links li{display:block;padding:4px 0}.recap-links li>*{vertical-align:baseline}.recap-links .recap-source{display:inline;margin-right:6px;font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.recap-links li{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.recap-links a{display:inline;white-space:normal;font-size:.9rem;line-height:1.3}.recap-foot{padding-top:8px}.recap-toggle{padding:6px 12px}.recap-injuries{flex-direction:row;align-items:baseline;gap:8px}.recap-injured{flex-direction:row;flex-wrap:wrap;gap:2px 12px;font-size:.85rem}.recap .recap-title{margin-top:-5px}.recap-box{grid-template-columns:minmax(0,1fr)}}@media(max-width:380px){.recap-weekday{display:none}}
