.hub-hero{background:#071b30;color:#fff;padding:64px 0}.hub-hero h1{font-size:clamp(2.5rem,6vw,5rem);line-height:1.05;margin:14px 0}.hub-hero p{max-width:720px;font-size:1.2rem;color:#d4e3ed}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;margin:24px 0}.hub-card{display:block;border:1px solid #b8cddd;border-radius:12px;background:white;color:#102b46;padding:26px;text-decoration:none}.hub-card h2,.hub-card h3{margin:10px 0}.hub-card a{color:#145779;text-decoration:underline}.hub-card small,.meta{font-size:.82rem;color:#466079}.team-banner{width:100%;height:auto;border-radius:14px;margin:25px 0}.hub-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin:24px 0}.hub-controls label,.search-label{font-weight:700}.hub-controls input,.hub-controls select,#site-search{display:block;width:100%;padding:14px;margin-top:8px;font:inherit;background:white;color:#102b46;border:1px solid #718ea3;border-radius:8px}.hub-jumps{display:flex;gap:12px;flex-wrap:wrap}.hub-jumps a{background:#e3edf4;padding:10px 16px;border-radius:30px;color:#102b46}.notice{background:#fff3cf;border-left:4px solid #c39118;padding:20px;margin:26px 0;color:#102b46}.table-scroll{overflow-x:auto;margin:25px 0}#stick-table{width:100%;border-collapse:collapse;min-width:640px}#stick-table th,#stick-table td{padding:18px;border:1px solid #b7ccd9;text-align:left;vertical-align:top;width:37%}#stick-table th:first-child{width:26%}#stick-table thead{background:#102b46;color:white}#stick-table tbody th{background:#eaf2f7}#stick-table a{color:#145779;text-decoration:underline}details{background:white;border:1px solid #b7ccd9;border-radius:8px;padding:16px 20px;margin:12px 0}summary{font-weight:700;cursor:pointer}details p{line-height:1.7}.nav-links{gap:18px!important}.nav-links a{font-size:.85rem!important}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #c18400;outline-offset:4px}.hub-card:hover{border-color:#247cae;box-shadow:0 5px 18px #102b4612}[hidden]{display:none!important}.proficiency-hero{padding:35px 0!important}.proficiency-hero h1{font-size:clamp(2.2rem,5vw,4rem)!important}.hub-hero+section h2{scroll-margin-top:100px}.site-header{position:relative}.jh-hero{min-height:560px!important}.jh-hero-photo{background-image:linear-gradient(90deg,rgba(3,18,32,.96),rgba(3,18,32,.5)),url('/assets/img/four-teammates-team-roster.webp')!important;background-position:center!important}@media(max-width:760px){.hub-hero{padding:36px 0}.hub-controls{grid-template-columns:1fr}.hub-card{padding:20px}.nav-actions .btn{display:none}.jh-hero{min-height:520px!important}.hub-hero p{font-size:1rem}.section{padding:36px 0}.team-banner{border-radius:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.site-header,.site-footer,.hub-jumps{display:none}.hub-hero{background:white;color:black;padding:0}.hub-hero p{color:black}}
.hub-hero h1{font-family:var(--heading);font-weight:900}.hub-hero{padding:42px 0}body:has(#task-search) .page-hero{padding:32px 0}body:has(#task-search) .page-hero h1{font-size:clamp(2.2rem,5vw,4rem)}

.nav-links{flex-wrap:wrap;row-gap:10px!important}.family-dedication{color:#d3e5ef;font-size:.9rem}.rule-table{width:100%;border-collapse:collapse}.rule-table th,.rule-table td{padding:15px;border:1px solid #bacddb;text-align:left}.rule-table th{background:#102b46;color:white}.notice blockquote{margin:0}@media(min-width:1000px){.nav-actions .slim{display:none}.nav-links{margin-left:auto}}

.penalty-picture-card{display:inline-block;vertical-align:top;width:calc(50% - 14px);margin:20px 20px 0 0;padding:18px;border:1px solid #bfd0dc;border-radius:14px;background:#fff;overflow:hidden}.penalty-picture-card:nth-of-type(even){margin-right:0}.penalty-picture-card h3{margin:0 0 14px;font-size:1.3rem}.penalty-art{width:100%;aspect-ratio:1;background-image:url('/assets/img/jacobson-21-penalties.webp');background-size:300% 300%;background-position:var(--px) var(--py);border-radius:9px;animation:penalty-breathe 5s ease-in-out infinite;animation-delay:var(--delay);transform-origin:center}.penalty-picture-card details{margin-bottom:0}.art-paused .penalty-art{animation-play-state:paused}@keyframes penalty-breathe{0%,100%{transform:scale(.98)}50%{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.penalty-art{animation:none}}@media(max-width:700px){.penalty-picture-card{width:100%;margin-right:0}}@media print{.penalty-art{animation:none}#art-motion{display:none}}

.combined-hero{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:32px;padding-top:60px;padding-bottom:60px}.jh-hero:has(.combined-hero){background:radial-gradient(at right top,#214768,#061525);min-height:0!important}.combined-hero h1{font:900 clamp(4rem,7vw,7rem)/.95 var(--heading);color:#fff;letter-spacing:-.02em;margin:22px 0}.combined-hero h1 span{color:#ffd05c}.combined-hero p{color:#d5e4ee;line-height:1.6}.combined-hero .creator-credit{color:#ffd05c;font-weight:700}.combined-hero img{width:100%;height:430px;object-fit:cover;border-radius:16px;border:2px solid #ba9145}.family-banner{padding:36px 0;text-align:center;background:#102b46;color:white;border-top:2px solid #e4b646;border-bottom:2px solid #e4b646}.family-banner h2{font:700 clamp(1.8rem,4vw,3rem)/1.1 var(--heading);margin:12px 0}.family-banner .brothers{color:#ffd05c;letter-spacing:.15em;font-size:.85rem}.family-banner a{color:#ffd05c;font-weight:700}.combined-training{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:30px}.training-tile{display:flex;flex-direction:column;overflow:hidden;background:#112c46;border:1px solid #b39452;border-radius:12px;text-decoration:none;color:#fff}.training-tile>div{padding:18px}.training-tile h3{font:800 1.6rem/1 var(--heading);text-transform:uppercase;margin:0 0 6px}.training-tile b{color:#ffcf5b;font-size:.85rem}.training-tile img{width:100%;height:190px;object-fit:cover}.training-tile p{padding:0 18px;font-size:.9rem;line-height:1.5}.training-tile>span{padding:0 18px 20px;color:#ffcf5b;font-size:.8rem;font-weight:800;margin-top:auto}@media(max-width:900px){.combined-hero{grid-template-columns:1fr;padding-top:35px;padding-bottom:35px}.combined-hero img{height:auto}.combined-training{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:440px){.training-tile img{height:140px}.training-tile>div{padding:12px}.training-tile h3{font-size:1.35rem}}

/* Three-teammate entry reveal */
body.welcome-active{overflow:hidden}#welcome-entry{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:24px;border:0;box-sizing:border-box;background:radial-gradient(ellipse at top,#224563,#061525 70%);color:#fff;overflow:auto}#welcome-entry::backdrop{background:#061525}.welcome-wrap{max-width:1050px;margin:auto;text-align:center}.welcome-wrap h2{font:900 clamp(2.2rem,6vw,4.5rem)/1 var(--heading);margin:15px 0 25px;color:#ffcf5b}#welcome-enter{display:block;width:100%;padding:0;border:2px solid #ffcf5b;border-radius:18px;overflow:hidden;background:#102b46;color:#ffcf5b;cursor:pointer}.welcome-kids{display:block;width:100%;aspect-ratio:2/1;background-image:url('/assets/img/welcome-four-kids-roster.webp');background-size:100% 200%;background-position:center top}.is-grinning .welcome-kids{background-position:center bottom}.welcome-label{display:block;padding:18px 12px;font:800 1.15rem var(--body)}#welcome-skip{background:transparent;border:0;color:#dce8ef;text-decoration:underline;padding:12px;cursor:pointer;font:inherit}#welcome-enter:focus-visible,#welcome-skip:focus-visible{outline:3px solid white;outline-offset:5px}.welcome-credit{font-size:.8rem;color:#c8d7e4}#welcome-status{min-height:1.5em}.welcome-wrap .eyebrow{font-size:.75rem}@media(max-width:600px){#welcome-entry{padding:32px 14px}.welcome-wrap{padding-top:8vh}.welcome-label{font-size:.95rem}}

/* Consistent four-player cast across the site */
.cast-action{display:block;width:100%;aspect-ratio:1;background-image:url('/assets/img/four-teammates-action-roster.webp');background-size:200% 200%;background-repeat:no-repeat}.cast-goalie{background-position:0 0}.cast-skater{background-position:100% 0}.cast-gia{background-position:0 100%}.cast-tali{background-position:100% 100%}.cast-page-banner{margin-top:28px;max-width:850px}.cast-page-banner img{display:block;width:100%;height:auto;border:1px solid #caab66;border-radius:14px}.combined-hero img{height:auto;aspect-ratio:2/1;object-fit:contain}.training-tile .cast-action{aspect-ratio:1;height:auto}.training-tile img[src$="four-teammates-team-roster.webp"]{height:auto;aspect-ratio:1;object-fit:contain;background:#102b46}
.training-tile>.cast-action{padding:0;margin-top:0}

/* Screen-bounded puck rendering: no 3D compositing or oversized layers. */
#welcome-puck[hidden]{display:none!important}#welcome-puck{position:fixed;inset:0;z-index:10;overflow:hidden;background:rgba(3,13,23,.2);color:#fff}#puck-canvas{display:block;width:100%;height:100%}.puck-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#puck-skip{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));right:24px;color:white;border:1px solid #a6abb0;border-radius:8px;background:#15191d;padding:12px 18px;font:700 1rem var(--body);cursor:pointer}#puck-skip:focus-visible{outline:3px solid #ffcf5b;outline-offset:4px}
.replay-team-intro{display:block;padding:0;border:2px solid #cda84e;border-radius:16px;overflow:hidden;background:#102b46;color:#ffcf5b;cursor:pointer;width:100%}.combined-hero .replay-team-intro img{display:block;width:100%;height:auto;border:0;border-radius:0}.replay-team-intro span{display:block;padding:14px;font:800 .85rem var(--body)}.replay-team-intro:focus-visible{outline:3px solid #fff;outline-offset:5px}
/* Practical starting points and rink-ready resources */
.reading{max-width:980px}.reading p,.reading li{line-height:1.7}.quick-text-link{color:#ffcf5b;text-decoration:underline;text-underline-offset:4px}.combined-hero h1{font-size:clamp(2.9rem,5.4vw,5.5rem)}.practice-facts{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 28px}.practice-facts>span{flex:1 1 150px;border:1px solid #c1d0dc;background:#eef4f8;color:#10233b;border-radius:9px;padding:12px;font-size:.9rem}.practice-facts b{display:block;color:#164e76;margin-bottom:4px}.sample-preview{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:32px}.sample-preview svg,.reading svg{display:block;width:100%;height:auto;background:#f6fbff;border-radius:14px}.kit-spec{font-size:.9rem;font-weight:700;color:#3e617b}.reading table{width:100%;border-collapse:collapse;font-size:.94rem;margin:20px 0}.reading th,.reading td{padding:13px;border:1px solid #bdcdd9;text-align:left;vertical-align:top}.reading th{background:#e4edf4}.reading details{border-bottom:1px solid #bccedc;padding:18px 0}.reading summary{cursor:pointer;font-weight:800}.reading h3{margin-top:28px}#pathway-chooser{display:grid;gap:14px;margin-bottom:28px}#pathway-chooser fieldset{border:1px solid #aac1d3;border-radius:10px;padding:18px}#pathway-chooser legend{font-weight:800}#pathway-chooser fieldset label{display:inline-flex;align-items:center;gap:8px;padding:8px 14px}#pathway-chooser input{width:20px;height:20px}#pathway-chooser>label{font-weight:700}#pathway-chooser select{width:100%;font:inherit;min-height:48px;padding:10px;border:1px solid #8da8bd;border-radius:7px;background:white;color:#10233b}#pathway-chooser button{justify-self:start}#path-result h2{margin-top:0}@media(max-width:720px){.sample-preview{grid-template-columns:1fr}.reading table{font-size:.8rem}.reading th,.reading td{padding:7px}.hub-card .btn{width:100%}}@media print{.site-header,.site-footer,.no-print,dialog{display:none!important}.hub-hero{background:white!important;color:black!important;padding:12px 0}.hub-hero h1,.hub-hero p{color:black!important}.section{padding:15px 0}.reading{max-width:none}.reading table{font-size:10pt}h2,h3{break-after:avoid}tr,svg,.practice-facts{break-inside:avoid}body{background:white!important}}

/* Encouragement and goalie reset */
.jh-coaching-quote{margin:1.25rem 0;padding:.5rem 0 .5rem 1.25rem;border-left:4px solid #d9aa48;font-size:clamp(1.35rem,3vw,2rem);font-weight:700;line-height:1.4;max-width:46rem}.goalie-reset-copy{max-width:900px}.goalie-reset-copy p{line-height:1.75}.goalie-reset-steps{padding-left:1.5rem}.goalie-reset-steps li{padding:.55rem 0;line-height:1.65}

/* Donate: a thank-you, with no payment collection. */
.nav-links a.donate-nav{border:1px solid #ffcc59;border-radius:7px;padding:9px 12px;color:#ffcc59;min-height:44px;display:inline-flex;align-items:center}.nav-links a.donate-nav:hover{background:#ffcc59;color:#071b30}
.donate-hero{background:#09172b;color:white;padding:64px 0}.donate-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}.ref-card{background:#f3f8fc;border-radius:22px;padding:26px 14px 24px;text-align:center;transform:rotate(-2deg);color:#10233b}.ref-call{font-size:.8rem;font-weight:900;letter-spacing:.2em}.ref-card img{width:100%;height:auto;display:block}.ref-verdict{font-family:var(--heading);font-size:1.6rem;font-weight:900}.donate-copy h1{font:900 clamp(3.7rem,7vw,6rem)/.95 var(--heading);margin:20px 0}.donate-copy h1 span,.donate-copy h2{color:#ffcc59}.donate-copy h2{font:900 2.2rem var(--heading);margin:24px 0 8px}.donate-copy p{color:#d6e6ef;font-size:1.05rem;line-height:1.7}.donate-copy p.donate-joke{font-size:1.25rem;color:white}.donate-copy .btn{margin-top:16px;text-align:center;line-height:1.4}.donate-future{max-width:780px}.donate-future h2{font:900 clamp(2rem,4vw,3rem) var(--heading);margin:12px 0}.donate-future p{line-height:1.8}.donate-future .btn{margin-top:16px}
@media(max-width:800px){.donate-layout{grid-template-columns:1fr;gap:36px}.ref-card{width:min(310px,100%);margin:auto;order:2}.donate-hero{padding:40px 0}.donate-copy h1{font-size:clamp(3.5rem,13vw,5rem)}}
