// ===================================================================== // PAGE LAYOUTS — CONTENT (News, Cooperstown, About) · 2 options each // ===================================================================== const { hv: H, BNav: Nav, FooterBlock: Foot, BrandBar: Brand, PageHead: Head } = window; const pkSt = { wrap: { maxWidth:1200, margin:'0 auto', padding:'56px 40px 80px' }, meta: { fontFamily:"'JetBrains Mono', monospace", fontSize:12, letterSpacing:'0.1em', textTransform:'uppercase', color:'var(--fg-3)', marginBottom:12 }, cat: { color:'var(--bb-red)', fontWeight:700 }, card: { background:'#fff', border:'1px solid var(--border-1)', borderRadius:12, overflow:'hidden', boxShadow:'var(--shadow-sm)' }, cardBody: { padding:'20px 22px 26px' }, cardTitle: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:800, fontSize:26, lineHeight:0.98, textTransform:'uppercase', color:'var(--bb-navy)', margin:'0 0 10px' }, excerpt: { fontSize:15, lineHeight:1.6, color:'var(--fg-2)', margin:0 }, blockHd: { fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:900, fontSize:30, textTransform:'uppercase', color:'var(--bb-navy)', margin:'0 0 18px' }, }; // ---------- NEWS ---------- const goArticle = (slug) => { location.href = 'article.html?slug=' + slug; }; const NewsMag = ({ data }) => { const [lead, ...rest] = data.news; return (
); }; // ---------- NEWS ARTICLE (sub-page) ---------- const NewsArticle = ({ data, slug }) => { const item = data.news.find(n => n.slug === slug) || data.news[0]; const more = data.news.filter(n => n.slug !== item.slug).slice(0, 3); return (
); }; const NewsList = ({ data }) => (
); // ---------- COOPERSTOWN ---------- const CoopCampaign = ({ data }) => (
); function hvBtnRedSmall() { return { background:'var(--bb-red)', color:'#fff', border:0, height:42, padding:'0 18px', borderRadius:8, fontFamily:"'Big Shoulders Display', sans-serif", fontWeight:800, fontSize:14, letterSpacing:'0.04em', textTransform:'uppercase', cursor:'pointer', width:'100%' }; } const CoopStory = ({ data }) => (
); // ---------- ABOUT ---------- const AboutStory = ({ data }) => (
); const AboutTimeline = ({ data }) => (
); Object.assign(window, { NewsMag, NewsArticle, NewsList, CoopCampaign, CoopStory, AboutStory, AboutTimeline });