<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en" />

<meta property="og:image" content="https://w2.chabad.org/media/images/1381/iGvP13817197.png" itemprop="image" width="150" height="150" />
<meta property="og:image:width" content="150" />
<meta property="og:image:height" content="150" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<meta name="keywords" content="Parents" />
<meta name="title" content="Parents - Lubavitch Chinuch Los Angeles" />
<meta property="og:type" content="website" />
<meta name="scope-aids" content="7438793-7438801-7498967" />
<meta name="article-keywords" content="2170-2898" />
<meta name="scope-aid" content="7438793" />
<meta name="scope-aid" content="7438801" />
<meta name="scope-aid" content="7498967" />
<meta name="article-keyword" content="2170" />
<meta name="article-keyword" content="2898" />
<meta property="og:url" content="https://www.lclaschools.com/templates/articlecco_cdo/aid/7498967/jewish/Parents.htm" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:site" content="@chabad" />
<meta property="og:title" content="Parents - Lubavitch Chinuch Los Angeles" /><link rel="canonical" href="https://www.lclaschools.com/templates/articlecco_cdo/aid/7498967/jewish/Parents.htm" />
<link rel="icon" type="image/png" href="https://www.lclaschools.com/media/images/1381/iGvP13817197.png" />
<link rel="Stylesheet" href="/css/fonts/font-awesome/font-awesome-5.css?v=2D6ABDDB" id="kfont-awesome" type="text/css"/>
<link rel="Stylesheet" href="/css/DefaultGrid.css?v=A13D74E8" id="kgrid" type="text/css"/>
<link rel="Stylesheet" href="/css/Elements.css?v=7A8278DB" id="k6" type="text/css"/>
<link rel="Stylesheet" href="/css/vendor/ds/tokens/sites.css?v=BD54F46B" id="ksites-ds-css" type="text/css"/>
<link rel="Stylesheet" href="/css/vendor/ds/tokens/sites-light.css?v=EDE7242E" id="ksites-light-ds-css" type="text/css"/>
<link rel="Stylesheet" href="/css/new/main.css?v=220E279D" id="k7" type="text/css"/>
<link rel="Stylesheet" href="/css/global.css?v=27BD2E9E" id="k3" type="text/css"/>
<link rel="Stylesheet" href="/css/global-print.css?v=40836E98" id="k5" type="text/css" media="print"/>
<link rel="Stylesheet" href="/css/cco/home/widget-styles.css?v=A8AC7A58" id="k6" type="text/css"/>
<link rel="Stylesheet" href="/css/sites6/default-theme.css?v=546A0139" id="k" type="text/css"/>
<link rel="Stylesheet" href="/css/old/global.css?v=43DDBA77" id="k2898" type="text/css"/>
<link rel="Stylesheet" href="/css/bootstrap/grid.css?v=F4390F2B" id="kbootstrap4-grid" type="text/css"/>
<link rel="Stylesheet" href="/css/Library/reader-comments.css?v=8AB57D79" id="kCommentsStylesheet" type="text/css"/>
<link rel="Stylesheet" href="/css/inline/BookInfo.css?v=3D052243" id="kBookInfoCss" type="text/css"/>
<!--[if lte IE 8]> <link rel="Stylesheet" href="/css/global-ie.css?v=807ACD6C" id="k4" type="text/css"/> <![endif]-->
<script>$q=[];$j=function(f){$q.push(f);}</script>
	
<title>
	Parents - Lubavitch Chinuch Los Angeles
</title>
	



<script>
	window.dataLayer = window.dataLayer || [];
	dataLayer.push({"event":"datalayer-initialized","page":{"numberOfComments":0,"publicationDate":"2026-09-04","primaryArticleId":7498967,"title":"","author":"","authorId":0,"contentLevel1":"My Site","contentLevel2":"Parents","siteName":"Lubavitch Chinuch Los Angeles"},"time":{"upcomingHoliday":"Chanukah","daysToUpcomingHoliday":33,"hebrewDate":"5787-08-22"}});
		dataLayer.push({ 'articleHierarchy': '-7438793-7438801-7498967-', 'keywords': '-k2898-k2170-', 'k': '-7438793-7438801-7498967--k2898-k2170-' });
	
</script>
<script>

(function(c,h,a,b,a,d){c[a]=c[a]||[];c[a].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=h.getElementsByTagName(b)[0],
j=h.createElement(b);j.async=true;
j.src='https://w6.chabad.org/mitzvah-tank.js';f.parentNode.insertBefore(j,f);
})(window,document,0,'script','dataLayer');</script>

	<!-- Start of StatCounter Code -->
	<script type="text/javascript">
	var sc_project = 13351204;var sc_partition = 83;var sc_invisible = 1;var sc_remove_link=1;var sc_security = "593f1fdf";var sc_https = 1;
	</script>
	<script type="text/javascript" src="https://secure.statcounter.com/counter/counter_xhtml.js" defer async></script>
	<noscript><img src="//c84.statcounter.com/counter.php?sc_project=13351204&amp;java=0&amp;security=593f1fdf&amp;invisible=1" border="0" /> </noscript>
	<!-- End of StatCounter Code -->


<style>
.widget-4.icon.custom{display:block!important;width:100%!important;box-sizing:border-box!important;margin:0!important;padding:34px 4% 38px!important;background:#f1f1f1!important}.widget-4.icon.custom .wrapper{max-width:1050px!important;margin:0 auto!important}.widget-4.icon.custom .widget_header{text-align:center!important;margin-bottom:24px!important}.widget-4.icon.custom .widget_content{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;align-items:flex-start!important;gap:28px 0!important}.widget-4.icon.custom .item{float:none!important;display:flex!important;flex:0 0 25%!important;min-width:190px!important;box-sizing:border-box!important;flex-direction:column!important;align-items:center!important;text-align:center!important;margin:0!important;padding:0 12px!important}.widget-4.icon.custom .separator{display:none!important}.widget-4.icon.custom .icon{height:100px!important;display:flex!important;align-items:center!important;justify-content:center!important}.widget-4.icon.custom .icon img{width:90px!important;height:90px!important;object-fit:contain!important;filter:none!important;-webkit-filter:none!important}.widget-4.icon.custom .title{margin-top:12px!important;min-height:44px!important}.widget-4.promo_slider .cycle-directionNav{display:none!important}#lcla-happening-carousel{width:100%;height:430px;border:0;display:block}#lcla-school-footer{background:#f4f4f4;text-align:center;padding:34px 20px 28px;color:#444;font-family:Arial,sans-serif}#lcla-school-footer .lcla-title{font-size:30px;font-weight:700;color:#f5aa17;margin-bottom:18px}#lcla-school-footer .schools{display:flex;justify-content:center;max-width:900px;margin:auto;flex-wrap:wrap}#lcla-school-footer .school{flex:1 1 320px;padding:4px 30px;box-sizing:border-box}#lcla-school-footer .school+.school{border-left:1px solid #aaa}#lcla-school-footer h3{color:#3978a8;margin:0 0 8px;font-size:21px}#lcla-school-footer p{margin:4px 0;line-height:1.5}#lcla-school-footer a{color:#3978a8;text-decoration:none}#lcla-school-footer .affiliates{margin-top:24px;font-size:13px;letter-spacing:1px}#lcla-school-footer .affiliate-links{margin-top:10px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap;font-weight:700}@media(max-width:850px){.widget-4.icon.custom .item{flex-basis:33.333%!important}}@media(max-width:700px){#lcla-school-footer .school+.school{border-left:0;border-top:1px solid #aaa;margin-top:18px;padding-top:20px}}@media(max-width:600px){.widget-4.icon.custom .item{flex-basis:50%!important;min-width:0!important}}
</style>
<script>(function(){function r(){var h=[].slice.call(document.querySelectorAll('h5')).find(function(x){return /Happening at LCLA/i.test(x.textContent||'')});if(h){var w=h.closest('.widget-1'),c=w&&w.querySelector('.widget_content');if(c&&!document.getElementById('lcla-happening-carousel')){var f=document.createElement('iframe');f.id='lcla-happening-carousel';f.title='Happening at LCLA video carousel';f.loading='lazy';f.allow='autoplay; fullscreen';f.src='https://my.walls.io/w47ge?token=6447df73f185d1ecf2b7ab98000c60d68b1ccdd8&nobackground=1&show_header=0&show_post_info=1&accessibility=1&layout=carousel';var m=c.querySelector('.readMore');c.insertBefore(f,m||null)}}if(!document.getElementById('lcla-school-footer')){var e=document.createElement('section');e.id='lcla-school-footer';e.setAttribute('aria-label','LCLA school contact information');e.innerHTML='<div class="lcla-title">LCLA</div><div class="schools"><div class="school"><h3>Bais Chaya Mushka</h3><p>9051 West Pico Boulevard</p><p>Los Angeles, California 90035</p><p><a href="tel:+13108598840">310-859-8840</a></p></div><div class="school"><h3>Cheder Menachem</h3><p>1606 South La Cienega Boulevard</p><p>Los Angeles, California 90035</p><p><a href="tel:+13106231470">310-623-1470</a></p></div></div><div class="affiliates">AFFILIATED WITH<div class="affiliate-links"><a href="https://www.bjela.org/" target="_blank" rel="noopener">Builders of Jewish Education</a><a href="https://www.jewishla.org/" target="_blank" rel="noopener">Jewish Federation Los Angeles</a></div></div>';var o=document.querySelector('#footer,.footer,footer');(o&&o.parentNode?o.parentNode:document.body).insertBefore(e,o||null)}}if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',r);else r();setTimeout(r,1200)})();</script></head>
<body class="lang_en dir_ltr cco_body sites-article">

	


	
	<div id="PrintCreditHeader" class="show_for_print">
Printed from<b>lclaschools.com</b>
</div>
	<div id="header">
		<div class="wrapper header-wrapper">
			
			


<div id="header_container" class="header_container">
	<div class="clearfix links">
		<img src="https://w2.chabad.org/images/global/spacer.gif" width="15" height="8" class="baruch_hashem" />
		<div class="float_right">
			
			
				<div class="topBarLink cco_topbar_link ask_the_rabbi_link">
					<a href="/asktherabbi/default_cdo/jewish/Ask-the-Rabbi.htm">Ask the Rabbi</a>
				</div>
				
			
			
				<div class="topBarLink cco_topbar_link contact_link">
					<a href="/tools/feedback.asp">Contact</a>
				</div>
			
			
		</div>
		<div class="float_left">
			
				<div class="topBarLink cco_topbar_link home_link">
					<a href="/">Home</a>
				</div>
				
			
			
			
			
		</div>
	</div>
	<div class="break_floats"></div>
</div>

			<div class="clearfix branding-search">
				<div id="header_branding" class="no_outline  logo">
					<div class="g260 no_margin cco_search_header float_right">
						

<div class="co_search_form margin05">
	<form name="MainSearchForm" id="MainSearchForm" method="get" action="/search/results.asp" class="clearfix" onsubmit="return Co.Forms.Validation.Validate(this, null, {markAsSubmitted:false});">
		<div class="co_global_submit"><button type="submit" class="button" value=" "><span> </span></button></div>
		

<div class="co_global_input_container clearfix">
	<input id="topAreaTopSearch_search" required="true" autocomplete="nope" placeholder="Search" value="" class="co_global_input co_search js-search-field active js-mirrored-input" onblur="this.form.className = this.form.className.replace(/\sactive/gi, &#39;&#39;);" name="searchWord" onfocus="this.form.className+=&#39; active&#39;;" type="text" display_name="Search Field" min_length="3"></input>
</div>

			
		
		
	
		<div id="topAreaTopSearch_search_wrapper" class="co_field_options" style="display:none;">
			<div class="co_absolute_wraper" id="co_absolute_wraper" style="">
				<div class="inner">
					<div id="topAreaTopSearch_search_container" class="co_field_options_suggestions"></div>
					<div class="break_floats"></div>
					
				</div>
			</div>
		</div>
	</form>
</div>
					</div>
					
						<div class="float_left site-logo-wrapper"><a href="/"><img src="https://w2.chabad.org/media/images/1381/iGvP13817197.png" width="100" height="100" border="0"  /></a></div>
					
					<a href="/default.asp" title="Lubavitch Chinuch Los Angeles" class="site_title">Lubavitch Chinuch Los Angeles<span class="site_subtitle clearfix"> </span></a>
				</div>
			</div>
			
			
			<button type='button' class='cs-mobile-menu-open js-mobile-menu-open'><i class='fa fa-bars'></i></button>
			<div class="site-nav-wrapper">
				<script>
var primaryNavigationVersion = "639291762829008689";
</script>
<div id="co_menu_container_wrapper" class="co_menu_container_wrapper " data-list-name="primary navigation"> 
<div class="co_menu_container clearfix" id="co_menu_container">
<a class="menu_logo" href="/"></a>
<table cellpadding="0" cellspacing="0" border="0" class="main_menu_container first global">
<tr id="tabContentMain" tab="Main" style="display:table-row;">
<td class="co_menu_item home" data-menu-level="1"><a href="/default.asp"><img class="co_menu_home_image" src="https://w2.chabad.org/images/global/spacer.gif" width="28" height="60" border="0" onmouseover="this.className += ' hover';" onmouseout="this.className=this.className.replace(/\s?hover/gi, '');" /></a></td>
<td class="co_menu_item_divider"><img src="https://w2.chabad.org/images/global/spacer.gif" width="2" height="1" border="0" /></td>
<td class="co_menu_item" aid="7543269" data-menu-level="1" onmouseover="this.className += ' hover';" onmouseout="this.className = this.className.replace(/\shover/gi, '');" >
<div class="co_menu_content"><div class="co_submenu_container" style="width:auto;display:none;clip:rect(auto auto 0px auto);">
<div class="wrapper">
<div class="column_wrapper clearfix" style="height:100%;">
</div>
<div class="break_floats"></div></div></div></div><span class="parent"><div><a href="/templates/articlecco_cdo/aid/7543269/jewish/Our-Videos.htm" class="parent">Our<br />Videos</a></div></span><a href="/templates/articlecco_cdo/aid/7543269/jewish/Our-Videos.htm" class="bg_extension js-parent-menu-link" data-aid="7543269"></a></td>
<td class="co_menu_item_divider"><img src="https://w2.chabad.org/images/global/spacer.gif" width="2" height="1" border="0" /></td>
<td class="co_menu_item" aid="7498850" data-menu-level="1" onmouseover="this.className += ' hover';" onmouseout="this.className = this.className.replace(/\shover/gi, '');" >
<div class="co_menu_content"><div class="co_submenu_container" style="width:auto;display:none;clip:rect(auto auto 0px auto);">
<div class="wrapper">
<div class="column_wrapper clearfix" style="height:100%;">
</div>
<div class="break_floats"></div></div></div></div><span class="parent"><div><a href="/7498964" class="parent">What&nbsp;is<br />LCLA</a></div></span><a href="/7498964" class="bg_extension js-parent-menu-link" data-aid="7498850"></a></td>
<td class="co_menu_item_divider"><img src="https://w2.chabad.org/images/global/spacer.gif" width="2" height="1" border="0" /></td>
<td class="co_menu_item arrow multi_level" aid="7498868" data-menu-level="1" onmouseover='Co.MainNavigation.Show(event, this);' onmouseout='Co.MainNavigation.Hide(event, this);' >
<div class="co_menu_content"><div class="co_submenu_container" style="width:auto;display:none;clip:rect(auto auto 0px auto);">
<div class="wrapper">
<div class="column_wrapper clearfix" style="height:100%;">
<div class="co_column">
<a href="https://www.lclaschools.com/7501766" class="item empty" id="menu_item3-1" data-menu-level="2" data-aid="7498880">
<img src="https://w2.chabad.org/images/global/spacer.gif" width="5" height="10" alt="" border="0" class="arrow off" />
<span>School Calendars</span>
</a>
<a href="https://chedermenachem.geniuseducation.com/#/parent" class="item empty" id="menu_item3-2" data-menu-level="2" data-aid="7498879">
<img src="https://w2.chabad.org/images/global/spacer.gif" width="5" height="10" alt="" border="0" class="arrow off" />
<span>Cheder Parent Portal</span>
</a>
<a href="https://bcm.geniuseducation.com/#/parent" class="item empty" id="menu_item3-3" data-menu-level="2" data-aid="7498881">
<img src="https://w2.chabad.org/images/global/spacer.gif" width="5" height="10" alt="" border="0" class="arrow off" />
<span>BCM Parent Portal</span>
</a>
</div>
<div id="menu_child3-1" class="menu_child empty selected" style="width:174px;">
<table cellpadding="0" cellspacing="0" border="0" style="height:100%;">
<tr class="wrapper clearfix">
<td class="co_column"><div class="column_left_wrapper">
<a href="" class="child_item default" data-menu-level="3" data-aid="0"><span></span></a>
</div></td>
</tr>
</table>
</div>
<div id="menu_child3-2" class="menu_child empty" style="width:174px;">
<table cellpadding="0" cellspacing="0" border="0" style="height:100%;">
<tr class="wrapper clearfix">
<td class="co_column"><div class="column_left_wrapper">
<a href="" class="child_item default" data-menu-level="3" data-aid="0"><span></span></a>
</div></td>
</tr>
</table>
</div>
<div id="menu_child3-3" class="menu_child empty" style="width:174px;">
<table cellpadding="0" cellspacing="0" border="0" style="height:100%;">
<tr class="wrapper clearfix">
<td class="co_column"><div class="column_left_wrapper">
<a href="" class="child_item default" data-menu-level="3" data-aid="0"><span></span></a>
</div></td>
</tr>
</table>
</div>
</div>
<div class="break_floats"></div></div></div></div><span class="parent"><img src="https://w2.chabad.org/images/global/spacer.gif" width="12" height="6" border="0" vspace="2" /><div><a href="/7498967" class="parent">Parents</a></div></span><a href="/7498967" class="bg_extension js-parent-menu-link" data-aid="7498868"></a></td>
<td class="co_menu_item_divider"><img src="https://w2.chabad.org/images/global/spacer.gif" width="2" height="1" border="0" /></td>
<td class="co_menu_item arrow multi_level" aid="7498870" data-menu-level="1" onmouseover='Co.MainNavigation.Show(event, this);' onmouseout='Co.MainNavigation.Hide(event, this);' >
<div class="co_menu_content"><div class="co_submenu_container" style="width:auto;display:none;clip:rect(auto auto 0px auto);">
<div class="wrapper">
<div class="column_wrapper clearfix" style="height:100%;">
<div class="co_column">
<a href="https://www.chedermenachem.com/templates/blog/default_cdo/aid/5952071/jewish/Building-Chinuch-Up.htm" class="item empty" id="menu_item4-1" data-menu-level="2" data-aid="7498883">
<img src="https://w2.chabad.org/images/global/spacer.gif" width="5" height="10" alt="" border="0" class="arrow off" />
<span>Blog</span>
</a>
<a href="https://buildingchinuch.com" class="item empty" id="menu_item4-2" data-menu-level="2" data-aid="7498884">
<img src="https://w2.chabad.org/images/global/spacer.gif" width="5" height="10" alt="" border="0" class="arrow off" />
<span>Building Chinuch Campaign</span>
</a>
</div>
<div id="menu_child4-1" class="menu_child empty selected" style="width:174px;">
<table cellpadding="0" cellspacing="0" border="0" style="height:100%;">
<tr class="wrapper clearfix">
<td class="co_column"><div class="column_left_wrapper">
<a href="" class="child_item default" data-menu-level="3" data-aid="0"><span></span></a>
</div></td>
</tr>
</table>
</div>
<div id="menu_child4-2" class="menu_child empty" style="width:174px;">
<table cellpadding="0" cellspacing="0" border="0" style="height:100%;">
<tr class="wrapper clearfix">
<td class="co_column"><div class="column_left_wrapper">
<a href="" class="child_item default" data-menu-level="3" data-aid="0"><span></span></a>
</div></td>
</tr>
</table>
</div>
</div>
<div class="break_floats"></div></div></div></div><span class="parent"><img src="https://w2.chabad.org/images/global/spacer.gif" width="12" height="6" border="0" vspace="2" /><div><a href="https://buildingchinuch.com" class="parent">Building<br />Chinuch</a></div></span><a href="https://buildingchinuch.com" class="bg_extension js-parent-menu-link" data-aid="7498870"></a></td>
<td class="co_menu_item_divider"><img src="https://w2.chabad.org/images/global/spacer.gif" width="2" height="1" border="0" /></td>
<td class="co_menu_item arrow multi_level" aid="7498875" data-menu-level="1" onmouseover='Co.MainNavigation.Show(event, this);' onmouseout='Co.MainNavigation.Hide(event, this);' >
<div class="co_menu_content"><div class="co_submenu_container" style="width:auto;display:none;clip:rect(auto auto 0px auto);">
<div class="wrapper">
<div class="column_wrapper clearfix" style="height:100%;">
<div class="co_column">
<a href="/templates/articlecco_cdo/aid/7502716/jewish/Prospective-Family-Form-202728.htm" class="item empty" id="menu_item5-1" data-menu-level="2" data-aid="7502716">
<img src="https://w2.chabad.org/images/global/spacer.gif" width="5" height="10" alt="" border="0" class="arrow off" />
<span>Prospective Family Form 2027–28</span>
</a>
</div>
<div id="menu_child5-1" class="menu_child empty selected" style="width:174px;">
<table cellpadding="0" cellspacing="0" border="0" style="height:100%;">
<tr class="wrapper clearfix">
<td class="co_column"><div class="column_left_wrapper">
<a href="" class="child_item default" data-menu-level="3" data-aid="0"><span></span></a>
</div></td>
</tr>
</table>
</div>
</div>
<div class="break_floats"></div></div></div></div><span class="parent"><img src="https://w2.chabad.org/images/global/spacer.gif" width="12" height="6" border="0" vspace="2" /><div><a href="/7499001" class="parent">Admissions</a></div></span><a href="/7499001" class="bg_extension js-parent-menu-link" data-aid="7498875"></a></td>
<td class="co_menu_item_divider"><img src="https://w2.chabad.org/images/global/spacer.gif" width="2" height="1" border="0" /></td>
<td class="co_menu_item donate_link" aid="0" data-menu-level="1" onmouseover="this.className += ' hover';" onmouseout="this.className = this.className.replace(/\shover/gi, '');" >
<div class="co_menu_content"><div class="co_submenu_container" style="width:auto;display:none;clip:rect(auto auto 0px auto);">
<div class="wrapper">
<div class="column_wrapper clearfix" style="height:100%;">
</div>
<div class="break_floats"></div></div></div></div><span class="parent"><div><a href="/4970020" class="parent">Donate</a></div></span><a href="/4970020" class="bg_extension js-parent-menu-link" data-aid="0"></a></td>
</tr>
</table>
</div>
</div>
<!-- END CACHE -->
				<div class="mobile-menu-bottom-links">
					
					<a href="/search">Search</a>
					
						<a href="/tools/feedback.asp">Contact</a>
					
				</div>
			</div>
		</div>
	</div>
	<div id="content">
		<div id="BodyContainer" class="wrapper">
			<div class="body_wrapper  no-hero-image clearfix">
				
	<div class="co_content_container clearfix local_content" id="co_content_container">
		<div class="clearfix">
			
			
			
			<div class="clearfix bh mobile-only align_right">ב"ה</div>
			
				<div class="master-content-wrapper g960" >
					

<header class="article-header cf ">
	
	
			<h1 class="article-header__title js-article-title js-page-title">Parents</h1>
		
			<div>
				
			</div>
		
</header>
				</div>
			
			<div class="body_wrapper clearfix co_body">
				<div class="g700" id="co_body_container">
					
					<div id="ContentBody">
						
						
							<div class="content-area-parent no_margin">
								
	<div id="cco_body">
		<div class="content g700 no_margin no_overflow" id="co_content_container">
			
			
	

	<article class="content js-content" itemscope itemtype="http://schema.org/Article">
	



<meta itemprop="mainEntityOfPage headline name" content="" />

<meta itemprop="image" content="" />


<meta itemprop="uploadDate" content="2026-09-04T16:44:14" />
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
	<meta itemprop="name" content="Lubavitch Chinuch Los Angeles" />
	<meta itemprop="brand" content="Lubavitch Chinuch Los Angeles" />
	<span itemprop="logo" itemscope itemtype="http://schema.org/ImageObject">
		<meta itemprop="url" content="https://w2.chabad.org/media/images/1381/iGvP13817197.png" />
		<meta itemprop="height" content="150" />
		<meta itemprop="width" content="150" />
	</span>
</span>
<meta itemprop="datePublished" content="2026-09-04T16:44:14" />
			<div itemprop="articleBody">
				<co:body xmlns:co="www1.chabadonline.com/alpha1" xmlns:ext="urn:xslt-extensions">
  <div class="co_body article-body cf">
<div style="max-width:1000px;margin:0 auto;padding:24px 12px;font-family:Arial,sans-serif;color:#263238;line-height:1.6;">
<h1 style="text-align:center;color:#173b57;margin-bottom:10px;">LCLA Parent Resources</h1>

<p style="text-align:center;font-size:17px;margin:0 auto 30px;max-width:760px;">Quick access to the parent portals used by Cheder Menachem and Bais Chaya Mushka families.</p>

<div style="display:flex;flex-wrap:wrap;gap:22px;justify-content:center;margin-bottom:38px;">
<div style="flex:1 1 300px;max-width:420px;border:1px solid #d9e2e8;border-radius:12px;padding:25px;text-align:center;box-shadow:0 3px 12px rgba(0,0,0,.07);"><section>
</section><section><h2 style="font-size:21px;color:#173b57;">Cheder Menachem Parent Portal</h2>

<p>Access your Cheder Menachem family and student information.</p>

<p>
<a href="https://chedermenachem.geniuseducation.com/#/parent" style="display:inline-block;background:#173b57;color:#fff;text-decoration:none;padding:11px 18px;border-radius:6px;">Open Parent Portal</a></p>
</section></div>

<div style="flex:1 1 300px;max-width:420px;border:1px solid #d9e2e8;border-radius:12px;padding:25px;text-align:center;box-shadow:0 3px 12px rgba(0,0,0,.07);">
<h2 style="font-size:21px;color:#173b57;">BCM Parent Portal</h2>

<p>Access your Bais Chaya Mushka family and student information.</p>

<p>
<a href="https://bcm.geniuseducation.com/#/parent" style="display:inline-block;background:#173b57;color:#fff;text-decoration:none;padding:11px 18px;border-radius:6px;">Open Parent Portal</a></p>
</div>
</div>
</div>

</div>
</co:body>
			</div>
			

			<div class="break_floats"></div>
			
	<div class="break_floats"></div>
	

<div class="content-footer">
	
	
	
	
	
	
</div>
	</article>

		</div>
	</div>
</div>
						
						<div class="break_floats"></div>
						
					</div>
				</div>
				
				
					<div class="ads g260" id="co_ads_container">
						
	



<div class="sidebar-local-navigation cf" id="">

<meta class="js-desktop-local-nav" data-base-class="co_local_menu" />

	<div class="co_local_menu local_content js-local-nav" data-list-name="local navigation">
		
			
			&nbsp;
			
	<div id="LocalNavigationQuickLinks" class="clearfix secondary_navigation local-navigation-quick-links container padding">
		<div class="header small_bottom_padding">
			<div>Quick Links</div>
		</div>

		
				<div class="item ">
					<a href="/tools/feedback.asp"><span><span>Contact</span></span></a>
				</div>
			
				<div class="item ">
					<a href="/4970020"><span><span>Donate</span></span></a>
				</div>
			
	</div>

		
	</div>
</div>


	

					</div>
				
				
			</div>
			
			
		</div>
		
		<aside class="page-tools-sidebar js-page-tools-sidebar hide_for_print">
<div class="page-tools js-page-tools-menu">
<div class="page-tools__section page-tools__section--share">
<a class="page-tools__tool js-share-popup page-tools__tool--facebook" data-share-url="https://www.facebook.com/dialog/share?app_id=188669250943&amp;display=popup&amp;href=https%3a%2f%2fwww.lclaschools.com%2ftemplates%2farticlecco_cdo%2faid%2f7498967%2fjewish%2fParents.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dFB">
				<i class="fa fa-facebook"></i>
			</a>
<a class="page-tools__tool js-share-popup page-tools__tool--twitter" data-share-url="https://twitter.com/intent/tweet?text=Parents+-+Lubavitch+Chinuch+Los+Angeles&amp;url=https%3a%2f%2fwww.lclaschools.com%2ftemplates%2farticlecco_cdo%2faid%2f7498967%2fjewish%2fParents.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dtwitter&amp;via=Chabad">
				<i class="fa fa-twitter"></i>
			</a>
<a class="page-tools__tool js-share-popup page-tools__tool--whatsapp d-lg-none js-share-whatsapp" data-share-url="whatsapp://send?text=Parents+-+Lubavitch+Chinuch+Los+Angeles https%3a%2f%2fwww.lclaschools.com%2ftemplates%2farticlecco_cdo%2faid%2f7498967%2fjewish%2fParents.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dwhatsapp">
				<i class="fa fa-whatsapp">
					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" fill="#128c7e" width="1em" height="1em"><path d="M25 2C12.318 2 2 12.318 2 25c0 3.96 1.023 7.854 2.963 11.29L2.037 46.73c-.096.343-.003.711.245.966.191.197.451.304.718.304.08 0 .161-.01.24-.029l10.896-2.699C17.463 47.058 21.21 48 25 48c12.682 0 23-10.318 23-23S37.682 2 25 2zm11.57 31.116c-.492 1.362-2.852 2.605-3.986 2.772-1.018.149-2.306.213-3.72-.231-.857-.27-1.957-.628-3.366-1.229-5.923-2.526-9.791-8.415-10.087-8.804-.295-.389-2.411-3.161-2.411-6.03s1.525-4.28 2.067-4.864c.542-.584 1.181-.73 1.575-.73s.787.005 1.132.021c.363.018.85-.137 1.329 1.001.492 1.168 1.673 4.037 1.819 4.33.148.292.246.633.05 1.022s-.294.632-.59.973-.62.76-.886 1.022c-.296.291-.603.606-.259 1.19s1.529 2.493 3.285 4.039c2.255 1.986 4.158 2.602 4.748 2.894.59.292.935.243 1.279-.146.344-.39 1.476-1.703 1.869-2.286s.787-.487 1.329-.292c.542.194 3.445 1.604 4.035 1.896.59.292.984.438 1.132.681.148.242.148 1.41-.344 2.771z"/></svg>
				</i>
			</a>
<a class="page-tools__tool js-share-popup page-tools__tool--pinterest d-none d-lg-block" data-share-url="http://pinterest.com/pin/create/button/?url=https%3a%2f%2fwww.lclaschools.com%2ftemplates%2farticlecco_cdo%2faid%2f7498967%2fjewish%2fParents.htm%23utm_medium%3dpage_tools%26utm_content%3ddesktop%26utm_source%3dpinterest&amp;description=Parents+-+Lubavitch+Chinuch+Los+Angeles">
				<i class="fa fa-pinterest"></i>
			</a>
<a class="page-tools__tool" onclick="showEmailLayer(this);">
<i class="fa fa-envelope"></i>
</a>
</div>
<div class="page-tools__section page-tools__section--other js-page-tool-other">
<div class="page-tools__tool popover-parent d-lg-block">
<div class="popover popover--right align_left nowrap">
<div class="popover__content">
<label class="bold bottom_margin block">
Print Options:
</label>
<form class="vcenter" name="print-form" onsubmit="coPrint(event, 7438801);return false;">
<div>
<label><input type="checkbox" name="print-green"><span title="Save paper and ink">Print without images <i class="fa fa-leaf text-green"></i></span></label>
</div>
<br/>
<div class="center">
<button class="co-button page-tools__print-button">Print</button>
</div>
</form>
</div>
</div>
<i class="fa fa-print"></i>
</div>
</div>
</div>
<div class="js-fab-wrapper fab-wrapper">
<div class="fab">
<i class="fab-icon"></i>
</div>
</div>
</aside>
<!-- END CACHE -->
	</div>

				<div class="break_floats"></div>
			</div>
		</div>
	</div>
	<div id="footer">
		
	

		<div class="wrapper body_container">
			
				<div class="g960 footer_family_text bottom_padding">
					
		<div class="footer_container footer_text copyright_text">
			<div class="bottom_padding clear_float">
				<img class="footer_hr" src="https://w2.chabad.org/images/global/spacer.gif" vspace="12" width="100%" height="1" /><br />
				
				<div class="footer_inner_container clearfix">
					

					



	<div class="footer3">
		<span class="footer-title" >Lubavitch Chinuch Los Angeles</span>
		<div class="footer-address">
			<span class="footer-street"> </span>
			<span class="footer-city-state">,  </span>
		</div>
			
	</div>
	<img src="https://w2.chabad.org/images/global/spacer.gif" width="1" height="6" border="0" /><br />



Powered by <a href="https://www.chabad.org/" target="_new" class="">Chabad.org</a> &copy; 1993-2026 <a href="/4026210" target="_blank" class="privacy-link">Privacy Policy</a>




					
				</div>
			</div>
		</div>
	
				</div>
			
		</div>
	</div>

	
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/os/jquery-latest.min.js?v=278824AF"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/co/dist/CoLib.js?v=6777A16C"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/WebComponents/bundles/magen-cdo-global.js?v=C73B7DD6"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/templates/sites6.js?v=E04072E1"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/primarynavigation.js?v=76ABCD73"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/modules/pagetools.js?v=930B07AB"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/BetaFeedback.js?v=2A22CA16"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/multimedia/infolayer.js?v=ED1B8531"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/article/comments/reply-form-controller.js?v=A9327DC7"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/commentsloader.js?v=AD6AAB79"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/subscribeprompt.js?v=86D84DC2"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/custom/deprecated.js?v=D506A83E"></script>
<script type="text/javascript" src="https://w2.chabad.org/scripts/js/OverrideJSDocumentWrite.js?v=9A0227AA"></script><script>$j = $j.fn ? $j : jQuery;$j(()=>{$q.forEach(f=>{try{f.call(window);}catch(ex){console.error(ex);}});})</script>
	

<script  language="javascript" type="text/javascript"> Co.Settings      = {CacheClassName:'js-cache-default',MosadName:'Lubavitch Chinuch Los Angeles'}; Co.ArticleId     = '7498967';Co.SectionId     = 7498967;Co.PartnerSiteId = 0;Co.SiteId        = 12751;Co.IsMobilePage  = false;Co.IsResponsive  = false;Co.DbDomain      = 'lclaschools.com';Co.LanguageCode  = '';Co.LoginStatus   = 'None';</script>

    
<!--
  VIDEO WALL — HOMEPAGE  (portrait tiles, latest N only)
  ======================================================
  Paste into the homepage's Custom Code slot.
  Same script body as video-wall-page.html — only the CFG block differs.

  SET BEFORE GOING LIVE:
    CFG.endpoint  -> your Apps Script /exec URL
    CFG.allUrl    -> the URL of your "all videos" page (or '' to hide the button)
-->

<style type="text/css">/*<![CDATA[*/

.vw-wall{--vw-accent:#1573be;--vw-ink:#181c14;--vw-muted:#6b7280;--vw-line:#e5e7eb;
  display:block !important;width:100% !important;max-width:1240px !important;
  margin:0 auto 48px !important;padding:40px 16px 0 !important;box-sizing:border-box !important;
  font-family:inherit !important}
.vw-wall *{box-sizing:border-box !important}

.vw-head{text-align:center !important;margin:0 0 26px !important}
.vw-head h2{margin:0 0 8px !important;padding:0 !important;font-size:clamp(26px,4vw,40px) !important;
  line-height:1.15 !important;font-weight:700 !important;color:var(--vw-ink) !important}
.vw-head p{margin:0 !important;padding:0 !important;font-size:16px !important;color:var(--vw-muted) !important}

/* Editable heading pasted into the page body (archive page). Styled to match
   .vw-head, but it is ordinary page content the client can edit in CKEditor. */
.vw-intro{max-width:1240px !important;margin:0 auto !important;padding:40px 16px 0 !important;
  text-align:center !important;box-sizing:border-box !important}
.vw-intro h2{margin:0 0 8px !important;padding:0 !important;font-size:clamp(26px,4vw,40px) !important;
  line-height:1.15 !important;font-weight:700 !important;color:#181c14 !important}
.vw-intro p{margin:0 !important;padding:0 !important;font-size:16px !important;color:#6b7280 !important}
.vw-intro + .vw-wall,.vw-intro ~ .vw-wall{padding-top:22px !important}

/* ---- tools (archive page only; inert on the homepage) ---- */
.vw-tools{display:flex !important;flex-wrap:wrap !important;gap:12px !important;
  align-items:center !important;justify-content:center !important;margin:0 0 24px !important}
.vw-search{flex:0 1 340px !important;min-width:200px !important;padding:11px 16px !important;
  font-size:15px !important;font-family:inherit !important;border:1px solid var(--vw-line) !important;
  border-radius:999px !important;outline:none !important;background:#fff !important;
  color:var(--vw-ink) !important}
.vw-search:focus{border-color:var(--vw-accent) !important;box-shadow:0 0 0 3px rgba(0,0,0,.06) !important}
.vw-chips{display:flex !important;flex-wrap:wrap !important;gap:7px !important;justify-content:center !important}
.vw-chip{padding:7px 14px !important;border:1px solid var(--vw-line) !important;border-radius:999px !important;
  background:#fff !important;color:var(--vw-muted) !important;font-size:13px !important;
  font-weight:600 !important;font-family:inherit !important;cursor:pointer !important}
.vw-chip.vw-on{background:var(--vw-accent) !important;border-color:var(--vw-accent) !important;color:#fff !important}
.vw-count{width:100% !important;text-align:center !important;font-size:13px !important;
  color:var(--vw-muted) !important}

/* ---- portrait grid ---- */
.vw-grid{display:grid !important;gap:26px 18px !important;
  grid-template-columns:repeat(var(--vw-cols,4),minmax(0,1fr)) !important;align-items:start !important}
@media(max-width:1000px){.vw-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}}
@media(max-width:700px){.vw-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:20px 12px !important}
  .vw-wall{padding:28px 14px 0 !important}}

.vw-card{margin:0 !important;padding:0 !important;background:none !important;border:0 !important}

/* 9:16 — every video is portrait */
.vw-frame{position:relative !important;width:100% !important;aspect-ratio:9/16 !important;
  border-radius:14px !important;background:#0d1117 !important;
  box-shadow:0 2px 14px rgba(0,0,0,.10) !important}

.vw-stage{position:absolute !important;inset:0 !important;display:block !important;width:100% !important;
  height:100% !important;margin:0 !important;padding:0 !important;border:0 !important;cursor:pointer !important;
  background:#0d1117 !important;border-radius:14px !important;overflow:hidden !important;
  -webkit-appearance:none !important;appearance:none !important;
  transition:transform .22s ease,box-shadow .22s ease !important}
.vw-card:hover .vw-stage:not(.vw-open){transform:translateY(-3px) !important;
  box-shadow:0 12px 30px rgba(0,0,0,.2) !important}
.vw-stage:focus-visible{outline:3px solid var(--vw-accent) !important;outline-offset:3px !important}

.vw-thumb{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;
  object-fit:cover !important;display:block !important;margin:0 !important;padding:0 !important;
  border:0 !important;border-radius:0 !important;transition:opacity .25s ease !important}
.vw-stage.vw-playing .vw-thumb{opacity:0 !important}

.vw-stage iframe{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;
  border:0 !important;display:block !important;background:#0d1117 !important}
/* a hover preview must not eat the click */
.vw-stage:not(.vw-open) iframe{pointer-events:none !important}
.vw-stage.vw-open iframe{pointer-events:auto !important}

/* Letterboxed upload: the file is 16:9 with the portrait footage pillarboxed
   in the middle. In the grid we zoom the player so the centre strip fills the
   9:16 tile, which crops the baked-in black bars off. Only in the grid —
   cropping the expanded player would cut its controls in half. */
.vw-stage.vw-fill:not(.vw-open) iframe{left:50% !important;top:0 !important;
  width:316% !important;height:100% !important;transform:translateX(-50%) !important}
.vw-stage.vw-fill:not(.vw-open) .vw-thumb{object-fit:cover !important}

.vw-play{position:absolute !important;left:50% !important;top:50% !important;
  transform:translate(-50%,-50%) !important;width:54px !important;height:54px !important;
  border-radius:50% !important;background:rgba(0,0,0,.55) !important;display:flex !important;
  align-items:center !important;justify-content:center !important;pointer-events:none !important;
  transition:opacity .2s ease,background .2s ease !important}
.vw-card:hover .vw-play{background:var(--vw-accent) !important}
.vw-stage.vw-playing .vw-play{opacity:0 !important}
.vw-play svg{width:19px !important;height:19px !important;margin-left:3px !important;fill:#fff !important}

.vw-dur{position:absolute !important;right:8px !important;bottom:8px !important;z-index:2 !important;
  background:rgba(0,0,0,.78) !important;color:#fff !important;font-size:11.5px !important;
  line-height:1 !important;padding:4px 7px !important;border-radius:5px !important;
  pointer-events:none !important;transition:opacity .2s ease !important}
.vw-stage.vw-playing .vw-dur{opacity:0 !important}

.vw-hint{position:absolute !important;left:8px !important;bottom:8px !important;z-index:3 !important;
  background:rgba(0,0,0,.74) !important;color:#fff !important;font-size:11.5px !important;
  font-weight:600 !important;line-height:1 !important;padding:6px 10px !important;
  border-radius:999px !important;opacity:0 !important;pointer-events:none !important;
  transition:opacity .2s ease !important}
.vw-stage.vw-playing:not(.vw-open) .vw-hint{opacity:1 !important}

.vw-meta{padding:12px 2px 0 !important}
.vw-date{display:block !important;font-size:11.5px !important;letter-spacing:.09em !important;
  text-transform:uppercase !important;color:var(--vw-accent) !important;font-weight:700 !important;
  margin:0 0 5px !important}
.vw-title{margin:0 0 5px !important;padding:0 !important;font-size:16px !important;line-height:1.3 !important;
  font-weight:700 !important;color:var(--vw-ink) !important}
.vw-desc{margin:0 !important;padding:0 !important;font-size:13.5px !important;line-height:1.5 !important;
  color:var(--vw-muted) !important;display:-webkit-box !important;-webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;overflow:hidden !important}
.vw-tags{margin:9px 0 0 !important;padding:0 !important;list-style:none !important;
  display:flex !important;flex-wrap:wrap !important;gap:5px !important}
.vw-tags li{margin:0 !important;padding:3px 8px !important;font-size:11px !important;font-weight:600 !important;
  border-radius:999px !important;background:rgba(0,0,0,.05) !important;color:var(--vw-muted) !important}

/* ---- expanded: portrait video + text ---- */
.vw-backdrop{position:fixed !important;inset:0 !important;z-index:2147482990 !important;
  background:rgba(8,10,14,.93) !important;opacity:0 !important;transition:opacity .2s ease !important}
.vw-backdrop.vw-in{opacity:1 !important}

.vw-modal{position:fixed !important;inset:0 !important;z-index:2147482995 !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
  padding:24px 20px !important;pointer-events:none !important;box-sizing:border-box !important}
.vw-modal *{box-sizing:border-box !important}
.vw-modal-inner{display:flex !important;gap:22px !important;align-items:stretch !important;
  justify-content:center !important;max-width:100% !important;max-height:100% !important}

/* sized by HEIGHT because the video is portrait */
.vw-slot{flex:0 0 auto !important;height:min(82vh,780px) !important;aspect-ratio:9/16 !important;
  width:auto !important;border-radius:12px !important;background:#0d1117 !important}
/* a genuinely 16:9 source opens in a 16:9 slot so its controls stay intact */
.vw-slot.vw-wide{aspect-ratio:16/9 !important;height:auto !important;
  width:min(1120px,92vw) !important}
.vw-slot.vw-free{aspect-ratio:auto !important;height:auto !important;max-height:82vh !important;
  background:none !important;pointer-events:auto !important}
.vw-slot.vw-free img{max-height:82vh !important;max-width:100% !important;width:auto !important;
  height:auto !important;border-radius:10px !important;display:block !important;
  box-shadow:0 30px 90px rgba(0,0,0,.55) !important}

.vw-panel{flex:0 1 400px !important;min-width:0 !important;pointer-events:auto !important;
  background:#fff !important;border-radius:12px !important;padding:24px !important;
  overflow-y:auto !important;-webkit-overflow-scrolling:touch !important;
  box-shadow:0 30px 90px rgba(0,0,0,.45) !important}
.vw-panel .vw-date{font-size:12px !important;color:var(--vw-accent,#1573be) !important}
.vw-panel h3{margin:0 0 12px !important;padding:0 !important;font-size:21px !important;
  line-height:1.25 !important;font-weight:700 !important;color:#181c14 !important}
.vw-panel p{margin:0 !important;padding:0 !important;font-size:15px !important;line-height:1.62 !important;
  color:#4b5563 !important;white-space:pre-line !important}
.vw-panel .vw-tags{margin:14px 0 0 !important}

.vw-stage.vw-open{position:fixed !important;z-index:2147483000 !important;inset:auto !important;
  aspect-ratio:auto !important;cursor:default !important;border-radius:12px !important;
  box-shadow:0 30px 90px rgba(0,0,0,.6) !important;transform:none !important;
  animation:vwPop .2s ease !important}
@keyframes vwPop{from{opacity:0}to{opacity:1}}

.vw-close{position:fixed !important;z-index:2147483010 !important;top:16px !important;right:18px !important;
  width:44px !important;height:44px !important;border-radius:50% !important;border:0 !important;
  cursor:pointer !important;background:rgba(255,255,255,.16) !important;color:#fff !important;
  font-size:26px !important;line-height:1 !important;display:flex !important;align-items:center !important;
  justify-content:center !important;padding:0 !important}
.vw-close:hover{background:rgba(255,255,255,.3) !important}

@media(max-width:860px){
  .vw-modal{padding:10px !important;align-items:flex-start !important}
  .vw-modal-inner{flex-direction:column !important;align-items:center !important;
    gap:10px !important;width:100% !important;margin-top:4vh !important}
  .vw-slot{height:min(60vh,520px) !important}
  .vw-panel{flex:none !important;width:100% !important;max-height:26vh !important;padding:15px !important}
  .vw-panel h3{font-size:18px !important}
}

/* ---- buttons / states ---- */
.vw-all,.vw-more{display:block !important;width:max-content !important;margin:34px auto 0 !important;
  padding:13px 34px !important;border:0 !important;border-radius:999px !important;cursor:pointer !important;
  background:var(--vw-accent) !important;color:#fff !important;font-size:15px !important;
  font-weight:700 !important;font-family:inherit !important;text-decoration:none !important;
  text-align:center !important}
.vw-all:hover,.vw-more:hover{filter:brightness(1.08) !important;color:#fff !important}

.vw-skel{border-radius:14px !important;aspect-ratio:9/16 !important;
  background:linear-gradient(90deg,#eceff3 25%,#f6f8fa 37%,#eceff3 63%) !important;
  background-size:400% 100% !important;animation:vwShim 1.3s ease infinite !important}
@keyframes vwShim{0%{background-position:100% 0}100%{background-position:0 0}}
.vw-empty{grid-column:1/-1 !important;text-align:center !important;color:var(--vw-muted) !important;
  padding:46px 0 !important}

.vw-loading{display:flex !important;align-items:center !important;justify-content:center !important;
  gap:10px !important;margin:0 0 20px !important;font-size:14px !important;
  color:var(--vw-muted) !important;text-align:center !important}
.vw-spin{width:15px !important;height:15px !important;flex:0 0 auto !important;
  border:2px solid rgba(0,0,0,.14) !important;border-top-color:var(--vw-accent) !important;
  border-radius:50% !important;animation:vwSpin .8s linear infinite !important}
@keyframes vwSpin{to{transform:rotate(360deg)}}
.vw-error{grid-column:1/-1 !important;text-align:center !important;padding:40px 0 !important;
  color:var(--vw-muted) !important;font-size:14.5px !important}
.vw-sentinel{grid-column:1/-1 !important;height:1px !important}

body.vw-locked{overflow:hidden !important}

@media(prefers-reduced-motion:reduce){
  .vw-stage,.vw-thumb,.vw-backdrop{transition:none !important;animation:none !important}
  .vw-skel,.vw-spin{animation:none !important}
}
/*]]>*/</style>


<script type="text/javascript">//<![CDATA[
(function () {
  'use strict';

  /* ============ CONFIG — homepage ============ */
  var CFG = {
    endpoint:  'https://script.google.com/macros/s/AKfycbxPxaU22GBH3mgy7s9TVdpdu8ZEuV5GY51_cV3sb2V3FL2RpYU0r22-0mz1xtWDoXc/exec',
    mode:      'home',          // 'home' = newest N only | 'page' = full archive

    // THIS SCRIPT LIVES IN THE GLOBAL FOOTER, so it loads on every page.
    // runOn limits where it actually renders. '/' means the site root exactly;
    // anything else matches if it appears anywhere in the path.
    // Empty array = run everywhere.
    runOn:     ['/', '/default'],

    // How many tiles the homepage shows now comes from the Settings tab
    // (homeCount, or pageSize). This is only the fallback before it loads.
    homeCount: 8,
    allUrl:    'https://www.lclaschools.com/templates/articlecco_cdo/aid/7543269',
    mountInto: '.vw-mount',     // preferred: paste <div class="vw-mount">.</div> where you want it
    mount:     ['#BodyContainer > div > div.g960 > div > div.g960.g960.g960.g960.g960.g960.g960.g960.no_margin.g960.no_margin > div > div:nth-child(2)'],
    placement: 'before',
    fallback:  '#BodyContainer',
    cacheKey:  'vwWall_home_v4',
    cacheMins: 30,
    hoverDelay: 350
  };
  /* =========================================== */

  // Wrong page for this copy of the script — do nothing at all.
  if (!pathAllowed()) return;

  // Belt and braces: never render two walls on one page. The in-page script
  // runs before the global footer one, so the page-specific copy wins.
  if (window.__vwWallMounted || window['__vwLoaded_' + CFG.mode]) return;
  window['__vwLoaded_' + CFG.mode] = true;

  function pathAllowed() {
    var list = [].concat(CFG.runOn || []);
    if (!list.length) return true;
    var path = location.pathname.replace(/\/+$/, '') || '/';
    for (var i = 0; i < list.length; i++) {
      var r = String(list[i] || '');
      if (!r) continue;
      if (r === '/') { if (path === '/') return true; }
      else if (path.indexOf(r) > -1) return true;
    }
    return false;
  }

  var S = {}, ALL = [], VIEW = [], shown = 0, total = 0;
  var rootEl = null, gridEl = null, countEl = null, sentinel = null, observer = null;
  var query = '', activeTag = '';
  var openStage = null, backdrop = null, closeBtn = null, modalEl = null, slotEl = null;
  var hoverTimer = null, searchTimer = null;

  var TOUCH = window.matchMedia('(hover: none)').matches ||
              ('ontouchstart' in window && window.innerWidth < 1024);
  var REDUCED = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
  var SAVEDATA = !!(navigator.connection && navigator.connection.saveData);
  var CAN_PREVIEW = !TOUCH && !REDUCED && !SAVEDATA;

  /* ---------------- boot ------------------------------------------ */

  var tries = 0;
  (function wait() {
    var m = resolveMount();
    if (m) return init(m);
    if (++tries <= 60) return setTimeout(wait, 150);

    // Nothing matched after ~9s. Rather than render nothing, drop the wall at
    // the end of the page body so it is at least visible and stylable.
    var fb = document.querySelector(CFG.fallback);
    if (fb) {
      if (window.console) console.warn('[video wall] no mount matched; appended to ' + CFG.fallback);
      init({ el: fb, how: 'append' });
    } else if (window.console) {
      console.warn('[video wall] no mount found and no fallback container.');
    }
  })();

  /* Mount order:
     1. a placeholder you paste into the page:  <div class="vw-mount">.</div>
        (the "." stops the CMS stripping the empty div; the script removes it)
     2. any selector in CFG.mount, in order
     3. appended to CFG.fallback                                             */
  function resolveMount() {
    if (CFG.mountInto) {
      var ph = document.querySelector(CFG.mountInto);
      if (ph && ph.parentNode) return { el: ph, how: 'replace' };
    }
    var sels = [].concat(CFG.mount || []);
    for (var i = 0; i < sels.length; i++) {
      if (!sels[i]) continue;
      var t;
      try { t = document.querySelector(sels[i]); } catch (e) { continue; }
      if (t && t.parentNode) return { el: t, how: CFG.placement || 'before' };
    }
    return null;
  }

  function init(m) {
    var target = m.el;
    rootEl = document.createElement('section');
    rootEl.className = 'vw-wall';
    rootEl.setAttribute('aria-label', 'Video wall');
    rootEl.innerHTML =
      // showHeading:false means the page supplies its own editable heading
      (CFG.showHeading === false ? '' : '<div class="vw-head"><h2></h2><p></p></div>') +
      (CFG.mode === 'page'
        ? '<div class="vw-tools">' +
            '<input class="vw-search" type="search" placeholder="Search videos\u2026" aria-label="Search videos">' +
            '<div class="vw-chips"></div><span class="vw-count"></span>' +
          '</div>'
        : '') +
      '<div class="vw-loading"><span class="vw-spin"></span><span>Loading videos…</span></div>' +
      '<div class="vw-grid" role="list"></div>';
    window.__vwWallMounted = true;

    if (m.how === 'replace') {
      target.parentNode.insertBefore(rootEl, target);
      target.parentNode.removeChild(target);
    } else if (m.how === 'append') {
      target.appendChild(rootEl);
    } else if (m.how === 'after' && target.nextSibling) {
      target.parentNode.insertBefore(rootEl, target.nextSibling);
    } else {
      target.parentNode.insertBefore(rootEl, target);
    }

    gridEl = rootEl.querySelector('.vw-grid');
    countEl = rootEl.querySelector('.vw-count');

    var skeletons = CFG.mode === 'home' ? Math.min(CFG.homeCount || 4, 4) : 4;
    for (var i = 0; i < skeletons; i++) {
      var sk = document.createElement('div');
      sk.className = 'vw-skel';
      gridEl.appendChild(sk);
    }

    var search = rootEl.querySelector('.vw-search');
    if (search) {
      search.addEventListener('input', function () {
        clearTimeout(searchTimer);
        searchTimer = setTimeout(function () {
          query = search.value.trim().toLowerCase();
          applyFilter();
        }, 160);
      });
    }

    var cached = readCache();
    if (cached) paint(cached);

    // mode=home lets the Settings tab decide the count, server side
    var url = CFG.endpoint + (CFG.mode === 'home' ? '?mode=home' : '');
    fetch(url, { cache: 'no-store' })
      .then(function (r) { return r.json(); })
      .then(function (d) {
        if (!d || !d.items) throw new Error('bad payload');
        writeCache(d);
        paint(d);
      })
      .catch(function () {
        stopLoading();
        if (!cached && gridEl) {
          gridEl.innerHTML = '<p class="vw-error">Videos couldn’t load just now. ' +
                             'Please refresh the page.</p>';
        }
      });

    document.addEventListener('keydown', function (e) {
      if (e.key === 'Escape' && modalEl) closeAll();
    });
  }

  /* ---------------- render ---------------------------------------- */

  function stopLoading() {
    var el = rootEl && rootEl.querySelector('.vw-loading');
    if (el && el.parentNode) el.parentNode.removeChild(el);
  }

  // How many the homepage shows. pageSize is the documented Settings key;
  // homeCount is only a legacy alias. CFG is the fallback before settings load.
  function homeLimit() {
    return Number(S.pageSize) || Number(S.homeCount) || Number(CFG.homeCount) || 8;
  }

  function paint(data) {
    S = data.settings || {};
    ALL = data.items || [];
    total = data.total || ALL.length;
    stopLoading();

    if (S.accent) rootEl.style.setProperty('--vw-accent', S.accent);
    rootEl.style.setProperty('--vw-cols', String(S.columns || 4));

    var h2 = rootEl.querySelector('.vw-head h2');
    var p  = rootEl.querySelector('.vw-head p');
    if (h2) {
      h2.textContent = S.title || '';
      h2.style.display = S.title ? '' : 'none';
    }
    if (p) {
      p.textContent = S.subtitle || '';
      p.style.display = S.subtitle ? '' : 'none';
    }

    if (CFG.mode === 'page') buildChips();
    applyFilter();
    if (CFG.mode === 'home') addAllButton();
  }

  function buildChips() {
    var box = rootEl.querySelector('.vw-chips');
    if (!box) return;
    var seen = {}, tags = [];
    ALL.forEach(function (it) {
      (it.tags || []).forEach(function (t) {
        var k = t.toLowerCase();
        if (!seen[k]) { seen[k] = 1; tags.push(t); }
      });
    });
    if (!tags.length) return;
    box.innerHTML = '';
    tags.sort();
    tags.unshift('All');
    tags.forEach(function (t) {
      var b = document.createElement('button');
      b.type = 'button';
      b.className = 'vw-chip' + ((t === 'All' && !activeTag) ? ' vw-on' : '');
      b.textContent = t;
      b.addEventListener('click', function () {
        activeTag = (t === 'All') ? '' : t.toLowerCase();
        Array.prototype.forEach.call(box.children, function (c) { c.classList.remove('vw-on'); });
        b.classList.add('vw-on');
        applyFilter();
      });
      box.appendChild(b);
    });
  }

  function applyFilter() {
    VIEW = ALL.filter(function (it) {
      if (activeTag) {
        var has = (it.tags || []).some(function (t) { return t.toLowerCase() === activeTag; });
        if (!has) return false;
      }
      if (!query) return true;
      var hay = (it.title + ' ' + it.description + ' ' + (it.tags || []).join(' ') + ' ' +
                 it.date + ' ' + it.dateRaw).toLowerCase();
      return hay.indexOf(query) > -1;
    });

    shown = 0;
    gridEl.innerHTML = '';
    if (observer) { observer.disconnect(); observer = null; }

    if (!VIEW.length) {
      gridEl.innerHTML = '<p class="vw-empty">' +
        (query || activeTag ? 'No videos match that.' : 'Nothing here just yet \u2014 check back soon.') +
        '</p>';
      updateCount();
      return;
    }

    appendBatch();
    if (CFG.mode === 'page') watchSentinel();
    updateCount();
  }

  function appendBatch() {
    // The archive's scroll batch is its own setting — pageSize is the
    // homepage count and must not shrink the archive's loading chunk.
    var size = CFG.mode === 'home' ? homeLimit() : (Number(S.batch) || 24);
    var end = Math.min(shown + size, VIEW.length);
    var frag = document.createDocumentFragment();
    for (; shown < end; shown++) frag.appendChild(buildCard(VIEW[shown]));
    if (sentinel && sentinel.parentNode) gridEl.insertBefore(frag, sentinel);
    else gridEl.appendChild(frag);
    updateCount();
  }

  function watchSentinel() {
    sentinel = document.createElement('div');
    sentinel.className = 'vw-sentinel';
    gridEl.appendChild(sentinel);

    if (!('IntersectionObserver' in window)) {
      var btn = document.createElement('button');
      btn.type = 'button';
      btn.className = 'vw-more';
      btn.textContent = 'Show more';
      btn.addEventListener('click', function () {
        appendBatch();
        if (shown >= VIEW.length) btn.parentNode.removeChild(btn);
      });
      rootEl.appendChild(btn);
      return;
    }

    observer = new IntersectionObserver(function (entries) {
      if (entries[0].isIntersecting && shown < VIEW.length) appendBatch();
    }, { rootMargin: '600px 0px' });
    observer.observe(sentinel);
  }

  function updateCount() {
    if (!countEl) return;
    countEl.textContent = VIEW.length
      ? 'Showing ' + Math.min(shown, VIEW.length) + ' of ' + VIEW.length +
        (VIEW.length !== total ? ' (' + total + ' in total)' : '')
      : '';
  }

  function addAllButton() {
    var url = CFG.allUrl || S.allUrl;
    if (!url || rootEl.querySelector('.vw-all')) return;
    if (!total) return;                       // nothing published: no button
    var a = document.createElement('a');
    a.className = 'vw-all';
    a.href = url;
    a.textContent = S.allLabel || 'View all videos';
    rootEl.appendChild(a);
  }

  function buildCard(item) {
    var card = document.createElement('article');
    card.className = 'vw-card';
    card.setAttribute('role', 'listitem');

    var frame = document.createElement('div');
    frame.className = 'vw-frame';

    var stage = document.createElement('button');
    stage.type = 'button';
    stage.className = 'vw-stage';
    stage.setAttribute('aria-label',
      (item.type === 'photo' ? 'View photo: ' : 'Play video: ') + (item.title || 'untitled'));
    stage._item = item;

    // Vimeo reports the file's real shape. If it's landscape but the footage
    // is portrait with baked-in bars, zoom the tile to crop them.
    if (item.w && item.h && (item.w / item.h) > 1.2) {
      stage.classList.add('vw-fill');
      item._wide = true;
    }

    if (item.thumb) {
      var img = document.createElement('img');
      img.className = 'vw-thumb';
      img.src = item.thumb;
      img.alt = '';
      img.loading = 'lazy';
      img.decoding = 'async';
      img.addEventListener('error', function () {
        if (item.provider === 'youtube' && img.src.indexOf('maxresdefault') > -1) {
          img.src = 'https://i.ytimg.com/vi/' + item.videoId + '/hqdefault.jpg';
        }
      });
      stage.appendChild(img);
    }

    if (item.type !== 'photo') {
      var play = document.createElement('span');
      play.className = 'vw-play';
      play.innerHTML = '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg>';
      stage.appendChild(play);

      if (item.duration > 0) {
        var d = document.createElement('span');
        d.className = 'vw-dur';
        d.textContent = fmtDuration(item.duration);
        stage.appendChild(d);
      }

      var hint = document.createElement('span');
      hint.className = 'vw-hint';
      hint.textContent = 'Click to watch';
      stage.appendChild(hint);
    }

    stage.addEventListener('click', function (e) { e.preventDefault(); openItem(stage); });

    if (CAN_PREVIEW && item.type !== 'photo' && S.hoverPreview !== false) {
      stage.addEventListener('mouseenter', function () {
        clearTimeout(hoverTimer);
        hoverTimer = setTimeout(function () { preview(stage); }, CFG.hoverDelay);
      });
      stage.addEventListener('mouseleave', function () {
        clearTimeout(hoverTimer);
        if (stage !== openStage) teardown(stage);
      });
    }

    frame.appendChild(stage);
    card.appendChild(frame);

    var meta = document.createElement('div');
    meta.className = 'vw-meta';

    var dateTxt = fmtDate(item.date) || item.dateRaw;
    if (dateTxt) {
      var t = document.createElement('time');
      t.className = 'vw-date';
      if (item.date) t.setAttribute('datetime', item.date);
      t.textContent = dateTxt;
      meta.appendChild(t);
    }
    if (item.title) {
      var h3 = document.createElement('h3');
      h3.className = 'vw-title';
      h3.textContent = item.title;
      meta.appendChild(h3);
    }
    if (item.description && S.showDescriptions !== false) {
      var pd = document.createElement('p');
      pd.className = 'vw-desc';
      pd.textContent = item.description;
      meta.appendChild(pd);
    }
    if (item.tags && item.tags.length) {
      var ul = document.createElement('ul');
      ul.className = 'vw-tags';
      item.tags.forEach(function (tg) {
        var li = document.createElement('li');
        li.textContent = tg;
        ul.appendChild(li);
      });
      meta.appendChild(ul);
    }

    card.appendChild(meta);
    return card;
  }

  /* ---------------- player ---------------------------------------- */

  function makeIframe(item, muted) {
    var src;
    if (item.provider === 'vimeo') {
      src = 'https://player.vimeo.com/video/' + item.videoId +
            '?autoplay=1&muted=' + (muted ? 1 : 0) +
            '&title=0&byline=0&portrait=0&dnt=1&playsinline=1&controls=1' +
            (item.hash ? '&h=' + item.hash : '');
    } else {
      src = 'https://www.youtube-nocookie.com/embed/' + item.videoId +
            '?autoplay=1&mute=' + (muted ? 1 : 0) +
            '&enablejsapi=1&playsinline=1&rel=0&origin=' + encodeURIComponent(location.origin);
    }
    var f = document.createElement('iframe');
    f.src = src;
    f.setAttribute('allow', 'autoplay; fullscreen; picture-in-picture; encrypted-media');
    f.setAttribute('allowfullscreen', '');
    f.setAttribute('referrerpolicy', 'strict-origin-when-cross-origin');
    f.title = item.title || 'Video';
    f._provider = item.provider;
    return f;
  }

  function preview(stage) {
    if (stage.querySelector('iframe')) return;
    stage.appendChild(makeIframe(stage._item, true));
    stage.classList.add('vw-playing');
  }

  function teardown(stage) {
    var f = stage.querySelector('iframe');
    if (f) f.parentNode.removeChild(f);
    stage.classList.remove('vw-playing');
  }

  // position:fixed silently breaks inside a transformed ancestor — probe first.
  var fixedOK = null;
  function fixedWorks(el) {
    if (fixedOK !== null) return fixedOK;
    var probe = document.createElement('div');
    probe.style.cssText = 'position:fixed;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none;';
    el.appendChild(probe);
    var r = probe.getBoundingClientRect();
    probe.parentNode.removeChild(probe);
    fixedOK = Math.abs(r.top) < 2 && Math.abs(r.left) < 2;
    return fixedOK;
  }

  function openItem(stage) {
    var item = stage._item;
    showBackdrop();
    buildModal(item);
    showChrome();

    if (item.type === 'photo') {
      slotEl.classList.add('vw-free');
      var pic = document.createElement('img');
      pic.src = item.thumb;
      pic.alt = item.title || '';
      slotEl.appendChild(pic);
      return;
    }

    if (fixedWorks(stage.parentNode)) {
      // Reuse the hover iframe. Reparenting reloads it; going fixed does not.
      var f = stage.querySelector('iframe');
      if (!f) {
        f = makeIframe(item, false);
        stage.appendChild(f);
        stage.classList.add('vw-playing');
      } else {
        unmute(f);
        if (S.restartOnOpen !== false) seekZero(f);
      }
      stage.classList.add('vw-open');
      openStage = stage;
    } else {
      teardown(stage);
      var shell = document.createElement('div');
      shell.className = 'vw-stage vw-open vw-playing';
      shell.appendChild(makeIframe(item, false));
      document.body.appendChild(shell);
      openStage = shell;
      openStage._detached = true;
    }

    positionStage();
    window.addEventListener('resize', positionStage);
    window.addEventListener('orientationchange', positionStage);
  }

  /* Park the player exactly over the empty slot. Inline styles need
     'important' because .vw-stage pins inset/width/height for its grid state. */
  function positionStage() {
    if (!openStage || !slotEl) return;
    var r = slotEl.getBoundingClientRect();
    openStage.style.setProperty('left', r.left + 'px', 'important');
    openStage.style.setProperty('top', r.top + 'px', 'important');
    openStage.style.setProperty('width', r.width + 'px', 'important');
    openStage.style.setProperty('height', r.height + 'px', 'important');
  }

  function buildModal(item) {
    modalEl = document.createElement('div');
    modalEl.className = 'vw-modal';
    if (S.accent) modalEl.style.setProperty('--vw-accent', S.accent);

    var inner = document.createElement('div');
    inner.className = 'vw-modal-inner';

    slotEl = document.createElement('div');
    slotEl.className = 'vw-slot' + (item._wide ? ' vw-wide' : '');
    inner.appendChild(slotEl);

    var dateTxt = fmtDate(item.date) || item.dateRaw;
    if (item.title || item.description || dateTxt) {
      var panel = document.createElement('div');
      panel.className = 'vw-panel';
      if (dateTxt) {
        var t = document.createElement('time');
        t.className = 'vw-date';
        if (item.date) t.setAttribute('datetime', item.date);
        t.textContent = dateTxt;
        panel.appendChild(t);
      }
      if (item.title) {
        var h = document.createElement('h3');
        h.textContent = item.title;
        panel.appendChild(h);
      }
      if (item.description) {
        var p = document.createElement('p');
        p.textContent = item.description;
        panel.appendChild(p);
      }
      if (item.tags && item.tags.length) {
        var ul = document.createElement('ul');
        ul.className = 'vw-tags';
        item.tags.forEach(function (tg) {
          var li = document.createElement('li');
          li.textContent = tg;
          ul.appendChild(li);
        });
        panel.appendChild(ul);
      }
      inner.appendChild(panel);
    }

    modalEl.appendChild(inner);
    document.body.appendChild(modalEl);
  }

  function unmute(f) {
    var send = function () {
      try {
        if (f._provider === 'vimeo') {
          f.contentWindow.postMessage(
            JSON.stringify({ method: 'setVolume', value: 1 }), 'https://player.vimeo.com');
        } else {
          f.contentWindow.postMessage(
            JSON.stringify({ event: 'command', func: 'unMute', args: [] }), '*');
          f.contentWindow.postMessage(
            JSON.stringify({ event: 'command', func: 'setVolume', args: [100] }), '*');
        }
      } catch (e) {}
    };
    send(); setTimeout(send, 250); setTimeout(send, 800);
  }

  function seekZero(f) {
    setTimeout(function () {
      try {
        if (f._provider === 'vimeo') {
          f.contentWindow.postMessage(
            JSON.stringify({ method: 'setCurrentTime', value: 0 }), 'https://player.vimeo.com');
        } else {
          f.contentWindow.postMessage(
            JSON.stringify({ event: 'command', func: 'seekTo', args: [0, true] }), '*');
        }
      } catch (e) {}
    }, 200);
  }

  function showBackdrop() {
    document.body.classList.add('vw-locked');
    backdrop = document.createElement('div');
    backdrop.className = 'vw-backdrop';
    backdrop.addEventListener('click', closeAll);
    document.body.appendChild(backdrop);
    requestAnimationFrame(function () { backdrop.classList.add('vw-in'); });
  }

  function showChrome() {
    closeBtn = document.createElement('button');
    closeBtn.type = 'button';
    closeBtn.className = 'vw-close';
    closeBtn.setAttribute('aria-label', 'Close');
    closeBtn.innerHTML = '×';
    closeBtn.addEventListener('click', closeAll);
    document.body.appendChild(closeBtn);
    closeBtn.focus();
  }

  function closeAll() {
    window.removeEventListener('resize', positionStage);
    window.removeEventListener('orientationchange', positionStage);

    if (openStage) {
      if (openStage._detached) {
        openStage.parentNode.removeChild(openStage);
      } else {
        openStage.classList.remove('vw-open');
        openStage.removeAttribute('style');
        teardown(openStage);
      }
      openStage = null;
    }
    [modalEl, closeBtn, backdrop].forEach(function (el) {
      if (el && el.parentNode) el.parentNode.removeChild(el);
    });
    modalEl = slotEl = closeBtn = backdrop = null;
    document.body.classList.remove('vw-locked');
  }

  /* ---------------- helpers --------------------------------------- */

  function fmtDate(iso) {
    if (!iso) return '';
    var parts = iso.split('-');
    if (parts.length !== 3) return '';
    var d = new Date(Number(parts[0]), Number(parts[1]) - 1, Number(parts[2]));
    if (isNaN(d)) return '';
    return d.toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' });
  }

  function fmtDuration(sec) {
    sec = Math.round(sec);
    var h = Math.floor(sec / 3600), m = Math.floor((sec % 3600) / 60), s = sec % 60;
    var pad = function (n) { return n < 10 ? '0' + n : String(n); };
    return h ? h + ':' + pad(m) + ':' + pad(s) : m + ':' + pad(s);
  }

  function readCache() {
    try {
      var raw = localStorage.getItem(CFG.cacheKey);
      if (!raw) return null;
      var o = JSON.parse(raw);
      if (Date.now() - o.at > CFG.cacheMins * 60000) return null;
      return o.data;
    } catch (e) { return null; }
  }

  function writeCache(data) {
    try { localStorage.setItem(CFG.cacheKey, JSON.stringify({ at: Date.now(), data: data })); }
    catch (e) {}
  }
})();
//]]></script>
</body>
</html>