.resource-hub-page{background:#f6f8fb}
.resource-hub-page .hub-heading{padding:40px 0 32px;display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:36px;align-items:center}
.hub-heading h1{font:650 clamp(2.4rem,4.4vw,3.8rem)/1.1 var(--sans);letter-spacing:-.045em;margin:16px 0}
.hub-heading p{max-width:680px;font-size:1.0625rem;line-height:1.75;color:var(--muted)}
.hub-heading .academic-plate{margin:0;width:100%;height:auto;aspect-ratio:3/2;overflow:hidden;border-radius:14px}
.hub-heading .academic-plate img{display:block;width:100%;height:100%;object-fit:cover}
.hub-note{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.hub-note span{background:#fff;padding:8px 12px;border:1px solid #dce3eb;border-radius:7px;font-size:.875rem;color:var(--ink)}
.hub-start{padding:0 0 30px}
.hub-start h2,.hub-section-title h2{font:650 1.5rem/1.3 var(--sans);letter-spacing:-.025em;margin:0 0 18px}
.hub-start-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hub-start-grid a{display:flex;flex-direction:column;align-items:flex-start;gap:13px;background:#fff;border:1px solid #dce3eb;border-radius:10px;padding:18px 16px;text-decoration:none;font-size:.9375rem;font-weight:600;line-height:1.5;min-width:0}
.hub-start-grid a:hover{border-color:var(--accent);background:#fcf8fa}
.hub-start-grid .task-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:9px;background:#f2e9ed;color:var(--accent);font:700 1rem var(--sans)}
.hub-start-grid a:nth-child(4n) .task-symbol{background:#e8effb;color:#264c8b}
.hub-catalog{scroll-margin-top:100px;padding-bottom:52px}
.hub-toolbar{padding:24px;background:#fff;border:1px solid #dce3eb;border-radius:14px;margin-bottom:24px}
.hub-toolbar label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;font-weight:600;color:var(--ink)}
.hub-search-row{display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px}
.hub-toolbar input,.hub-toolbar select{font:400 1rem var(--sans);color:var(--ink);background:#fff;border:1px solid #b9c5d3;border-radius:7px;padding:13px 14px;min-width:0;width:100%;min-height:48px}
.hub-toolbar input:focus,.hub-toolbar select:focus{outline:3px solid #d4bac6;outline-offset:2px;border-color:var(--accent)}
.hub-clear{border:1px solid #bdc8d5;border-radius:7px;background:#fff;color:var(--ink);font:600 .875rem var(--sans);padding:13px 18px;min-height:48px;cursor:pointer}
.hub-filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}
.hub-topics{display:flex;flex-wrap:wrap;gap:8px;margin:23px 0 0;border:0;padding:0;min-width:0}
.hub-topics legend{font-size:.875rem;font-weight:600;margin-bottom:10px}
.hub-topics button{background:#f5f7fa;border:1px solid #dce3eb;border-radius:100px;color:var(--ink);padding:10px 16px;font:500 .875rem var(--sans);cursor:pointer;min-height:42px}
.hub-topics button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}
.hub-results-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px}
.hub-results-bar p{font-size:.875rem;margin:0;color:var(--muted)}
.hub-results-bar a{font-size:.875rem;color:var(--accent)}
.hub-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.hub-card{display:flex;flex-direction:column;border:1px solid #dce3eb;border-radius:12px;background:#fff;overflow:hidden;text-decoration:none;min-width:0;transition:border-color .15s,box-shadow .15s}
.hub-card:hover{border-color:var(--accent);box-shadow:0 6px 20px #1b263710}
.hub-card .hub-card-art{margin:0;aspect-ratio:2.1/1;overflow:hidden;background:#e9e5dd}
.hub-card-art img{display:block;width:100%;height:100%;object-fit:cover}
.hub-card-content{display:flex;flex-direction:column;padding:21px;flex:1}
.hub-card-source{font-size:.75rem;letter-spacing:.025em;color:#66748a;margin-bottom:12px}
.hub-card-source.external{color:#294f85}
.hub-card h3{font:650 1.25rem/1.4 var(--sans);letter-spacing:-.02em;margin:0 0 12px;color:var(--ink)}
.hub-card p{font-size:.9375rem;line-height:1.7;color:var(--muted);margin:0 0 18px}
.hub-card-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;margin-bottom:17px}
.hub-card-tags span{font-size:.75rem;line-height:1.45;padding:5px 9px;border-radius:5px;background:#eff3f8;color:#41526a}
.hub-card-action{font-size:.875rem;font-weight:650;color:var(--accent)}
.hub-card .hub-context{font-size:.8125rem;border-top:1px solid #e5eaf0;padding-top:13px;margin-top:0;line-height:1.65}
.hub-card[hidden],.hub-empty[hidden],[data-resource-more][hidden]{display:none!important}
.hub-more{display:flex;justify-content:center;margin:28px 0 0}
.hub-more button{border-radius:7px;min-width:260px}
.hub-empty{padding:32px;border:1px dashed #b7c3d2;background:#fff;border-radius:12px;text-align:center}
.hub-empty h3{font:600 1.25rem var(--sans)}
.hub-guidance{background:#fff;border-top:1px solid #dce3eb;border-bottom:1px solid #dce3eb;padding:34px 0}
.hub-guidance .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.hub-guidance h2{font:650 1.5rem/1.4 var(--sans);margin:0 0 13px}
.hub-guidance p{font-size:1rem;line-height:1.75;color:var(--muted)}
.hub-guidance a{color:var(--accent)}
.hub-bottom{padding:30px 0 48px}
.hub-bottom .contact{background:#f1e9ee}
.hub-bottom .contact h2{font:650 1.9rem/1.3 var(--sans)}
.resource-hub-page .hub-card:focus-visible,.hub-start-grid a:focus-visible,.hub-toolbar button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:1050px){.hub-start-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.resource-hub-page .hub-heading{grid-template-columns:1fr;padding-top:28px;gap:18px}.hub-heading .academic-plate{display:none}.hub-heading h1{font-size:2.8rem}.hub-start-grid{gap:10px}.hub-start-grid a{font-size:.875rem;padding:15px 12px}.hub-toolbar{padding:20px}.hub-filter-row{grid-template-columns:1fr}.hub-search-row{grid-template-columns:1fr}.hub-clear{justify-self:start}.hub-guidance .wrap{grid-template-columns:1fr;gap:14px}.hub-card-content{padding:19px}.hub-card-grid{gap:15px}.hub-card h3{font-size:1.15rem}}
@media(max-width:520px){.hub-start-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-card-grid{grid-template-columns:1fr}.hub-heading h1{font-size:2.55rem}.hub-topics button{padding:9px 13px}.hub-note span{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){.hub-card{transition:none}}
