.banner{background-color:var(--habs-red);width:100%;color:var(--white);text-align:center;padding:8px 0;text-decoration:none;transition:transform .3s,background-color .3s;box-shadow:0 4px 6px #0000001a}.banner:hover{background-color:var(--bright-red);transform:scale(1.05)}.banner-content{max-width:1200px;margin:0 auto;padding:0 20px}.banner-title,.banner-subtitle{text-decoration:underline;-webkit-text-decoration-color:var(--white);text-decoration-color:var(--white);margin:0;font-weight:700}.banner-title{font-size:2rem}.banner-subtitle{margin-top:5px;font-size:1rem}@media (width>=769px) and (width<=1024px){.banner-content{padding:0 15px}.banner-title{font-size:1.75rem}.banner-subtitle{font-size:.9rem}}@media (width<=768px){.banner{padding:6px 0}.banner-content{padding:0 10px}.banner-title{font-size:1.5rem}.banner-subtitle{font-size:.85rem}}@media (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:#fff;--border:#a8afba;--card-border:#3a3f47;--card-border-width:1.5px;--text-primary:#1a1a1f;--text-secondary:#2f343c;--text-muted:#5f6672;--shadow-sm:0 1px 3px #1018281f, 0 1px 2px #1018280f;--shadow-md:0 6px 20px #1018281f;--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{isolation:isolate;position:relative;overflow:hidden}.shimmer:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 30%,#ffffff8c 50%,#0000 70%);animation:2.2s ease-in-out .8s 3 shimmer-sweep;position:absolute;inset:0;transform:translate(-120%)}.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{background:var(--surface);border:var(--card-border-width) solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-align:left;color:var(--text-primary);grid-template-columns:minmax(0,5fr) minmax(0,8fr);grid-template-areas:"kick kick""head head""side reads""foot foot""box box";gap:14px 28px;padding:16px 20px 14px 24px;line-height:1.35;display:grid;position:relative;overflow:hidden;container-type:inline-size}.recap:before{content:"";background:var(--habs-blue);width:5px;position:absolute;inset:0 auto 0 0}.recap h2,.recap h3,.recap p,.recap ol,.recap ul{margin:0}.recap-kicker,.recap-label,.recap-block h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:.7rem;font-weight:700}.recap-label,.recap-block h3{color:var(--habs-blue)}.recap-kicker{grid-area:kick}.recap .recap-title{border-bottom:1px solid var(--border);font-family:Anton,Impact,sans-serif;font-weight:400;font-size:min(1.75rem, calc(100cqi / (var(--recap-len,40) * .44)));letter-spacing:.01em;color:var(--habs-blue);white-space:nowrap;text-overflow:ellipsis;grid-area:head;margin-top:-10px;padding-bottom:12px;line-height:1.15;overflow:hidden}.recap-side{flex-direction:column;grid-area:side;gap:14px;min-width:0;display:flex}.recap-stars-wrap,.recap-injuries{flex-direction:column;gap:6px;min-width:0;display:flex}.recap-stars{flex-direction:column;gap:5px;padding:0;font-size:.92rem;list-style:none;display:flex}.recap-stars li{white-space:nowrap;align-items:baseline;gap:8px;min-width:0;display:flex}.recap-star-rank{background:var(--habs-red);color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:.72rem;font-weight:800;display:inline-grid;transform:translateY(-1px)}.recap-star-line{color:var(--text-secondary);text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.recap-injuries .recap-label{color:var(--habs-red)}.recap-injured{flex-direction:column;gap:4px;min-width:0;padding:0;font-size:.92rem;list-style:none;display:flex}.recap-injured li{white-space:nowrap;align-items:baseline;gap:8px;min-width:0;max-width:100%;display:flex}.recap-injured a{text-overflow:ellipsis;max-width:100%;color:var(--text-primary);flex:none;font-weight:700;text-decoration:none;overflow:hidden}.recap-injured a:hover,.recap-injured a:focus-visible{color:var(--link-hover);text-decoration:underline}.recap-injured .recap-source{text-overflow:ellipsis;min-width:0;color:var(--text-secondary);flex:0 auto;font-size:.8rem;overflow:hidden}.recap-reads{flex-direction:column;grid-area:reads;gap:4px;min-width:0;display:flex}.recap-band{border-left:3px solid var(--habs-red);color:var(--habs-red);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(90deg,#af1e2d29,#af1e2d00 85%);border-radius:2px;padding:4px 10px;font-size:.72rem;font-weight:800}.recap-links{flex-direction:column;padding:0;list-style:none;display:flex}.recap-links li+li{border-top:1px solid var(--bg)}.recap-links a{color:var(--text-primary);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title arrow""source arrow";align-items:center;gap:1px 12px;margin:0 -8px;padding:5px 8px;text-decoration:none;transition:background-color .12s;display:grid}.recap-links a:hover,.recap-links a:focus-visible{background:var(--bg)}.recap-links a:hover .recap-link-title,.recap-links a:focus-visible .recap-link-title{color:var(--link-hover)}.recap-links .recap-source{text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);grid-area:source;font-size:.76rem;overflow:hidden}.recap-link-title{text-overflow:ellipsis;white-space:nowrap;grid-area:title;font-size:.92rem;font-weight:600;overflow:hidden}.recap-arrow{color:var(--text-muted);grid-area:arrow;font-size:.85rem}.recap-foot{border-top:1px solid var(--border);grid-area:foot;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.recap-toggle{border:1px solid var(--habs-blue);background:var(--habs-blue);color:#fff;font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:7px 16px;font-size:13px;font-weight:600;line-height:normal;transition:background-color .15s,border-color .15s;display:inline-flex}@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{border-bottom:2px solid;border-right:2px solid;width:6px;height:6px;transition:transform .15s;transform:rotate(45deg)translate(-2px,-2px)}.recap.is-open .recap-chevron{transform:rotate(-135deg)translate(-2px,-2px)}.recap-credit{color:var(--text-secondary);font-size:.72rem}.recap-box{grid-area:box;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px 28px;display:grid}.recap-box[hidden]{display:none}.recap-shots{grid-column:1/-1;font-size:.9rem}.recap-shots b{margin-right:6px}.recap-block{flex-direction:column;gap:6px;min-width:0;display:flex}.recap-goals,.recap-goalies{flex-direction:column;gap:6px;padding:0;font-size:.88rem;list-style:none;display:flex}.recap-goal{grid-template-columns:5.4em 2.6em 1fr;align-items:baseline;gap:0 8px;display:grid}.recap-goal-when{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.recap-goal-team{color:var(--text-secondary);font-weight:700}.recap-goal--us .recap-goal-team{color:var(--habs-red)}.recap-goal-who{min-width:0}.recap-assists{color:var(--text-secondary);font-size:.8rem;display:block}.recap-goalies li{grid-template-columns:2.6em 1fr;gap:8px;display:grid}.recap-tag{border:1px solid var(--border);color:var(--text-secondary);vertical-align:1px;border-radius:4px;margin-left:6px;padding:0 5px;font-size:.68rem;font-weight:700;display:inline-block}.recap-phone-only{display:none}.recap-box .recap-reads{grid-area:auto/1/auto/-1}@media (width<=640px),(orientation:landscape) and (height<=500px){.recap{grid-template-columns:minmax(0,1fr);grid-template-areas:"kick""head""side""foot""box";row-gap:10px;padding:12px 14px 10px 18px}.recap-wide-only{display:none}.recap-box .recap-reads.recap-phone-only{display:flex}.recap-toggle .recap-phone-only{letter-spacing:.08em;text-transform:uppercase;display:inline}.recap-toggle{padding:6px 14px}.recap-kicker{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.05em;min-width:0;font-size:.66rem;overflow:hidden}.recap .recap-title{font-size:min(1.25rem, calc(100cqi / (var(--recap-len,40) * .44)));border-bottom:0;margin-top:-7px;padding-bottom:0}.recap-side{gap:8px}.recap-stars-wrap .recap-label{display:none}.recap-stars{flex-flow:wrap;gap:2px 12px;font-size:.85rem}.recap-star-line{display:none}.recap-injuries{flex-direction:row;align-items:baseline;gap:8px}.recap-injured{flex-flow:wrap;gap:2px 12px;font-size:.88rem}.recap-foot{padding-top:10px}.recap-box{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr);gap:16px;padding-top:12px}.recap-box[hidden]{display:none}.recap-band{padding:3px 8px;font-size:.7rem}.recap-links a{row-gap:3px;min-height:44px;margin:0 -4px;padding:10px 4px}.recap-link-title{white-space:normal;font-size:.98rem;line-height:1.35}.recap-links .recap-source{font-size:.78rem}.recap-arrow{font-size:.95rem}}@media (width<=380px){.recap-weekday{display:none}}
