:root{color-scheme:light;--bg: #f8f3e8;--panel: rgba(255, 255, 255, .82);--panel-strong: #fffdf8;--ink: #243042;--muted: #5f6b7a;--accent: #356d7a;--accent-soft: #d9eef1;--warm: #f2b880;--line: rgba(36, 48, 66, .14);--shadow: 0 16px 48px rgba(36, 48, 66, .12);--radius: 24px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}button,input,select,textarea{font:inherit}body{margin:0;font-family:Trebuchet MS,Gill Sans,Lucida Grande,Arial Narrow,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(242,184,128,.28),transparent 28%),radial-gradient(circle at top right,rgba(53,109,122,.18),transparent 24%),linear-gradient(180deg,#fff9ef 0%,var(--bg) 52%,#f7f1e7 100%);min-height:100vh}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.16em}img{max-width:100%;display:block}.skip-link{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:#fff;padding:.75rem 1rem;border-radius:999px;z-index:1000}.skip-link:focus{top:1rem}.shell{width:min(1120px,calc(100% - 2rem));margin:0 auto}.page-shell{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:1.25rem 0 4rem}.site-header{position:sticky;top:0;z-index:20;backdrop-filter:blur(16px);background:#f8f3e8b8;border-bottom:1px solid var(--line)}.header-shell{display:flex;gap:1.5rem;align-items:center;justify-content:space-between;padding:1rem 0;flex-wrap:wrap}.brand-lockup{display:flex;align-items:center;gap:.9rem;min-width:0}.brand-mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:1rem;background:linear-gradient(135deg,var(--accent),#4f8f9a);color:#fff;font-weight:800;letter-spacing:.08em;box-shadow:var(--shadow)}.brand-lockup h1{margin:0;font-size:1.1rem;line-height:1.2}.brand-subline{margin:.2rem 0 0;font-size:.92rem;color:var(--muted);line-height:1.35}.eyebrow{margin:0 0 .18rem;font-size:.8rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.12em}.site-nav{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.site-nav a{padding:.7rem .95rem;border-radius:999px;text-decoration:none;border:1px solid transparent;color:var(--muted);background:#ffffff80;transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease}.site-nav a:hover,.site-nav a:focus-visible{transform:translateY(-1px);color:var(--ink);border-color:var(--line);background:#fff;outline:none}.hero{display:grid;grid-template-columns:1.35fr .9fr;gap:1.25rem;align-items:stretch;padding-top:1rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-main{padding:2rem;position:relative;overflow:hidden}.hero-main:after{content:"";position:absolute;inset:auto -6rem -7rem auto;width:14rem;height:14rem;border-radius:50%;background:radial-gradient(circle,#356d7a29,#356d7a00 68%);pointer-events:none}.hero-main h2{margin:.4rem 0 .8rem;font-size:clamp(2.3rem,4vw,4rem);line-height:.98;letter-spacing:-.04em;max-width:10ch}.hero-main p{margin:0;font-size:1.08rem;line-height:1.7;color:var(--muted);max-width:64ch}.hero-actions,.card-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.button{display:inline-flex;align-items:center;justify-content:center;padding:.88rem 1.2rem;border-radius:999px;text-decoration:none;font-weight:700;border:1px solid transparent;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.button:hover,.button:focus-visible{transform:translateY(-1px)}.button.primary{background:var(--ink);color:#fff;box-shadow:0 12px 24px #2430422e}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.hero-side{display:grid;gap:1rem}.quick-card{padding:1.25rem;background:var(--panel-strong)}.quick-card h3{margin:0 0 .4rem;font-size:1.02rem}.quick-card p{margin:0;color:var(--muted);line-height:1.65}.section{margin-top:1.25rem;padding:1.5rem}.section-header{display:flex;gap:1rem;align-items:end;justify-content:space-between;margin-bottom:1rem}.section-header h3,.page-title{margin:0;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.1;letter-spacing:-.03em}.section-header p,.page-intro{margin:0;color:var(--muted);line-height:1.65;max-width:60ch}.grid{display:grid;gap:1rem}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.home-split{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.25rem}.stack{display:grid;gap:.85rem}.card{background:#ffffffdb;border:1px solid var(--line);border-radius:20px;padding:1.2rem;box-shadow:0 10px 22px #2430420f}.card h4,.card h2{margin:0 0 .5rem;line-height:1.2}.card h4{font-size:1.05rem}.meta{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.83rem}.meta.warm{background:#f2b88038;color:#a65e18}.meta.neutral{background:#5f6b7a1f;color:var(--muted)}.card p{margin:.55rem 0 0;color:var(--muted);line-height:1.65}.card .fineprint{font-size:.95rem;color:var(--muted)}.list{display:grid;gap:.85rem;margin:0;padding:0;list-style:none}.list-item{padding:1rem 1.1rem;border-radius:18px;background:#ffffffd6;border:1px solid var(--line)}.list-item h4{margin:0}.list-item .entry-link{display:inline-flex;margin-top:.6rem;font-weight:700;color:var(--accent)}.prose{display:grid;gap:1rem;line-height:1.75;color:var(--ink)}.prose h2,.prose h3{margin:0;line-height:1.15}.prose p{margin:0;color:var(--muted)}.prose ul{margin:0;padding-left:1.2rem;color:var(--muted)}.site-footer{border-top:1px solid var(--line);padding:1.5rem 0 2rem}.footer-shell{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;color:var(--muted);font-size:.95rem;line-height:1.6}.inline-link{color:var(--accent);font-weight:700}.contact-callout{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.25rem 0 .5rem}.contact-callout .button{min-width:12rem}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr);gap:1.25rem;align-items:start}.calendar-panel{padding:1.25rem}.calendar-header{display:flex;gap:1rem;align-items:start;justify-content:space-between;margin-bottom:1rem}.calendar-nav{display:flex;flex-wrap:wrap;gap:.6rem}.calendar-nav button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:.75rem 1rem;font-weight:700;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.calendar-nav button:hover:not(:disabled),.calendar-nav button:focus-visible:not(:disabled){transform:translateY(-1px);border-color:#356d7a59;box-shadow:0 10px 20px #24304214;outline:none}.calendar-nav button:disabled{opacity:.45;cursor:not-allowed}.calendar-grid-shell{display:grid;gap:.75rem}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}.calendar-weekdays span{padding:.15rem .35rem;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.calendar-day{display:grid;grid-template-rows:auto auto 1fr auto;align-items:start;gap:.35rem;min-height:8.8rem;padding:.75rem;border-radius:18px;border:1px solid var(--line);background:#ffffffe6;color:var(--ink);text-align:left;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease}.calendar-day:hover,.calendar-day:focus-visible{transform:translateY(-1px);box-shadow:0 14px 24px #24304214;outline:none}.calendar-day:disabled{cursor:not-allowed;opacity:.42;transform:none;box-shadow:none}.calendar-day--outside{opacity:.58;background:#ffffff94}.calendar-day--instruction{border-color:#356d7a2e;background:linear-gradient(180deg,#d9eef1b8,#ffffffeb)}.calendar-day--holiday{border-color:#a65e182e;background:linear-gradient(180deg,#f2b8802e,#ffffffe6)}.calendar-day--recess{border-color:#5f6b7a29;background:linear-gradient(180deg,#5f6b7a1a,#ffffffe6)}.calendar-day--selected{border-color:#356d7a8c;box-shadow:0 0 0 2px #356d7a1f}.calendar-day-number{font-size:.92rem;font-weight:800}.calendar-day-flag{display:inline-flex;align-self:start;justify-self:start;padding:.32rem .55rem;border-radius:999px;background:#356d7a1a;color:var(--accent);font-size:.75rem;font-weight:800;line-height:1.2}.calendar-day-note{display:inline-flex;align-self:start;justify-self:start;font-size:.8rem;line-height:1.35;color:var(--muted)}.calendar-day-note--accent{color:var(--accent);font-weight:700}.calendar-day-note--muted{opacity:.85}.calendar-sidebar{display:grid;gap:1rem}.timeline-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.timeline-item{padding:.9rem;border-radius:16px;border:1px solid var(--line);background:#ffffffd6}.timeline-item h4{margin:0;font-size:1rem}.timeline-item p{margin:.35rem 0 0;color:var(--muted);line-height:1.6}.timeline-item--holiday{background:#f2b88029}.timeline-item--recess{background:#5f6b7a1a}.timeline-item--week{background:#d9eef1e6}.timeline-item--unit{background:#356d7a14}.timeline-item--pausing-point{background:#356d7a1f}.timeline-item--published{background:#d9eef1b8}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.detail-grid>div{padding:.8rem;border-radius:16px;border:1px solid var(--line);background:#ffffffe0}.detail-grid p{margin:.4rem 0 0;color:var(--muted);line-height:1.6}.legend{display:flex;flex-wrap:wrap;gap:.6rem}.legend-item{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .75rem;border-radius:999px;border:1px solid var(--line);background:#ffffffe0;font-size:.88rem;font-weight:700}.legend-item:before{content:"";width:.7rem;height:.7rem;border-radius:999px;background:var(--accent)}.legend-item--instruction:before{background:var(--accent)}.legend-item--holiday:before{background:#a65e18}.legend-item--recess:before{background:#738092}.legend-item--milestone:before{background:#5b7f8a}.calendar-note p{margin:0;color:var(--muted);line-height:1.7}.published-plan{margin-top:.65rem;padding:.9rem;border-radius:16px;border:1px solid rgba(53,109,122,.16);background:#d9eef1d1}.published-plan h4,.published-note h4,.record-item h4{margin:0;line-height:1.2}.published-plan p,.published-note p,.record-item p{margin:.35rem 0 0;color:var(--muted);line-height:1.6}.published-note-list{display:grid;gap:.65rem;margin-top:.9rem}.published-note{padding:.85rem .9rem;border-radius:14px;border:1px solid var(--line);background:#ffffffd6}.planner-shell{display:grid;gap:1rem}.planner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.planner-column{display:grid;gap:1rem}.planner-card{padding:1.25rem}.teacher-banner{display:grid;gap:.65rem}.notice{margin:0;padding:.9rem 1rem;border-radius:16px;border:1px solid var(--line);background:#ffffffe0;line-height:1.65}.notice--warning{border-color:#a65e1838;background:#f2b88029;color:#8e5317}.notice--success{border-color:#356d7a38;background:#d9eef1d1;color:var(--accent)}.notice--error{border-color:#94404038;background:#f0d2d2b8;color:#8a3a3a}.planner-form{display:grid;gap:.9rem}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.field{display:grid;gap:.4rem;color:var(--ink)}.field span{font-size:.88rem;font-weight:700}.field input,.field textarea,.field select{width:100%;padding:.78rem .9rem;border-radius:14px;border:1px solid var(--line);background:#ffffffeb;color:var(--ink)}.field textarea{resize:vertical}.field--static{padding:.78rem .9rem;border-radius:14px;border:1px solid var(--line);background:#ffffffd6}.field--static p{margin:.3rem 0 0;color:var(--muted);line-height:1.6}.button-row{display:flex;flex-wrap:wrap;gap:.7rem}.record-list{display:grid;gap:.75rem;margin-top:1rem}.record-item{padding:.9rem;border-radius:16px;border:1px solid var(--line);background:#ffffffd6}.record-item__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.record-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.85rem}.record-item .fineprint,.list-summary .fineprint{margin:0}@media(max-width:860px){.hero,.calendar-layout,.planner-grid,.field-grid{grid-template-columns:1fr}.site-nav{justify-content:flex-start}}@media(max-width:640px){.page-shell{padding-top:.75rem}.home-split{grid-template-columns:1fr}.hero-main,.section{padding:1.1rem}.footer-shell,.section-header{align-items:flex-start;flex-direction:column}.calendar-header{flex-direction:column}.calendar-weekdays,.calendar-grid{gap:.35rem}.calendar-day{min-height:7.4rem;padding:.65rem}.detail-grid{grid-template-columns:1fr}}
