/* Printable Den — compiled site stylesheet (W2 rebuild)
   Replaces per-page Tailwind CDN + duplicated inline <style> blocks.
   Palette derived from the site's existing theme colour (#0f172a slate / #f59e0b butter accent). */

:root{
  --slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;
  --slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;
  --butter-50:#fffbeb;--butter-100:#fef3c7;--butter-200:#fde68a;--butter-300:#fcd34d;--butter-400:#fbbf24;
  --butter-500:#f59e0b;--butter-600:#d97706;--butter-700:#b45309;
  --emerald-50:#ecfdf5;--emerald-100:#d1fae5;--emerald-200:#a7f3d0;--emerald-800:#065f46;
  --sky-50:#f0f9ff;--sky-100:#e0f2fe;--sky-200:#bae6fd;--sky-800:#075985;
  --violet-100:#ede9fe;--violet-800:#5b21b6;
  --orange-50:#fff7ed;--orange-200:#fed7aa;--orange-800:#9a3412;
  --chalk:#fafbfc;
  --shadow-card:0 1px 0 rgba(15,23,42,.04),0 12px 30px -18px rgba(15,23,42,.18);
  --shadow-lg:0 20px 40px -20px rgba(15,23,42,.35);
  --font-display:"DM Sans",Inter,system-ui,sans-serif;
  --font-sans:Inter,ui-sans-serif,system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--chalk);color:var(--slate-900)}
body{font-family:var(--font-sans);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-0.015em;margin:0}
p{margin:0}
ul,ol{list-style:none;margin:0;padding:0}
a{text-decoration:none;color:inherit}
img,svg{display:block;max-width:100%}
table{border-collapse:collapse}
button,select,input,label{font:inherit}
button{cursor:pointer;background:none;border:0}
:focus-visible{outline:3px solid var(--butter-400);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important}}

/* ===== New chrome: topbar + mobile nav toggle ===== */
.topbar{background:var(--slate-900);color:var(--slate-400);font-size:.75rem;letter-spacing:.04em;text-align:center;padding:.4rem 1rem}
.topbar a{color:var(--butter-300)}
.nav-toggle-input{position:absolute;opacity:0;pointer-events:none}
.nav-toggle-btn{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:32px;cursor:pointer}
.nav-toggle-btn span{display:block;height:2px;width:100%;background:var(--slate-900);border-radius:2px}
.mobile-nav{display:none;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--slate-200)}
.mobile-nav a{display:block;padding:.75rem 1.25rem;font-size:.95rem;font-weight:500;color:var(--slate-700);border-top:1px solid var(--slate-100)}
.mobile-nav a:hover{color:var(--butter-700)}
@media (max-width:767px){
  .nav-toggle-btn{display:flex}
  .nav-toggle-input:checked ~ .mobile-nav{display:flex}
}
@media (min-width:768px){ .mobile-nav{display:none !important} }

/* ===== table scroll wrapper (added around every <table>) ===== */
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll table{width:100%}
.table-scroll table thead th{position:sticky;top:0;background:var(--slate-900);color:var(--butter-200);z-index:1}
.table-scroll table tbody tr:nth-child(even) td{background:var(--slate-50)}
.table-scroll table th:first-child,.table-scroll table td:first-child{position:sticky;left:0;background:inherit}
.table-scroll table td,.table-scroll table th{border-bottom:1px solid var(--slate-100);padding:.4rem .6rem}

/* ===== component classes already used inline on pages ===== */
.tick{background-image:radial-gradient(var(--slate-300) 1px,transparent 1px);background-size:14px 14px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-radius:12px;overflow:hidden;border:1px solid var(--slate-200);background:#fff}
.cal-grid>div{border-top:1px solid var(--slate-200);border-left:1px solid var(--slate-200);min-height:86px;padding:6px 8px;background:#fff}
.cal-grid>div:nth-child(7n+1){border-left:0}
.cal-grid>div:nth-child(-n+7){border-top:0}
.cal-grid .dim{background:var(--slate-50);color:var(--slate-400)}
.cal-grid .head{background:var(--slate-900);color:var(--butter-200);min-height:auto;padding:10px 8px;font-weight:700;text-align:center;letter-spacing:.08em;font-size:11px;text-transform:uppercase;border-color:var(--slate-900)}
.cal-grid .holiday{background:linear-gradient(180deg,var(--butter-50) 0%,var(--butter-100) 100%)}
.cal-grid .observance{background:#fefce8}
.landscape .cal-grid>div{min-height:110px}
.hero-cal{box-shadow:0 30px 60px -30px rgba(15,23,42,.35),0 8px 18px -8px rgba(15,23,42,.18);transform:rotate(-1.4deg)}
.hero-cal-2{transform:rotate(2deg)}
.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .65rem;border-radius:9999px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.pill-yellow{background:var(--butter-100);color:#92400e}
.pill-slate{background:var(--slate-200);color:var(--slate-700)}
.pill-line{background:transparent;border:1px solid var(--slate-200);color:var(--slate-700)}
.grade-k5{--gc:#16a34a;--gcs:#dcfce7}
.grade-68{--gc:#0ea5e9;--gcs:#e0f2fe}
.grade-912{--gc:#7c3aed;--gcs:#ede9fe}
.grade-chip{background:var(--gcs);color:var(--gc);border:1px solid color-mix(in srgb,var(--gc) 25%,transparent)}
.prose-school h2,.prose-school h3{font-family:var(--font-display);color:var(--slate-900)}
.prose-school p,.prose-school li{color:var(--slate-700)}
.link-row a{color:var(--slate-800)}
.link-row a:hover{color:var(--butter-700)}
.site-header{background:rgba(255,255,255,.9)}
@media print{
  header.site-header,footer.site-footer,.no-print,.topbar{display:none !important}
  body{background:#fff}
  .table-scroll{overflow-x:visible}
}

/* ===== prose (article body) typography ===== */
.prose{color:var(--slate-700);font-size:1rem;line-height:1.7}
.prose h2{font-size:1.5rem;margin-top:2em;margin-bottom:.6em;color:var(--slate-900)}
.prose h3{font-size:1.2rem;margin-top:1.5em;margin-bottom:.5em;color:var(--slate-900)}
.prose p{margin:1em 0}
.prose ul,.prose ol{margin:1em 0;padding-left:1.4rem}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li{margin:.4em 0}
.prose a{color:var(--butter-700);text-decoration:underline}
.prose a:hover{color:var(--slate-900)}
.prose table{margin:1em 0}
.not-prose{all:revert}

/* ===== layout / display ===== */
.block{display:block}.inline-block{display:inline-block}.inline-flex{display:inline-flex}
.flex{display:flex}.grid{display:grid}.hidden{display:none}
.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky}
.top-0{top:0}.left-2{left:.5rem}.right-2{right:.5rem}.z-30{z-index:30}
.-top-1{top:-.25rem}.-bottom-10{bottom:-2.5rem}.-right-6{right:-1.5rem}.-inset-6{inset:-1.5rem}.-z-10{z-index:-10}
.flex-wrap{flex-wrap:wrap}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}
.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.self-center{align-self:center}
.justify-between{justify-content:space-between}.justify-center{justify-content:center}
.group:hover .group-hover\:translate-x-0\.5{transform:translateX(.125rem)}
.transition{transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}

/* grid columns */
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:640px){
  .sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:768px){
  .md\:flex{display:flex}.md\:block{display:block}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
  .md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
  .md\:col-span-2{grid-column:span 2 / span 2}
  .md\:col-span-4{grid-column:span 4 / span 4}
  .md\:text-5xl{font-size:2.5rem}
  .md\:text-6xl{font-size:2.75rem}
}
@media (min-width:1024px){
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}
  .lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
  .lg\:col-span-2{grid-column:span 2 / span 2}
  .lg\:col-span-5{grid-column:span 5 / span 5}
  .lg\:col-span-7{grid-column:span 7 / span 7}
}

/* ===== spacing: gap / margin / padding / space-between ===== */
.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}
.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-10{gap:2.5rem}
.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}
.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}
.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}
.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}
.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}
.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}
.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}
.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}
.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}
.space-y-1>*+*{margin-top:.25rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}
.space-y-6>*+*{margin-top:1.5rem}
.divide-y>*+*{border-top-width:1px}
.divide-slate-100>*+*{border-color:var(--slate-100)}
.first\:pt-0:first-child{padding-top:0}.last\:pb-0:last-child{padding-bottom:0}
.my-8{margin-top:2rem;margin-bottom:2rem}

/* ===== sizing ===== */
.h-1\.5{height:.375rem}.h-5{height:1.25rem}.h-9{height:2.25rem}.h-16{height:4rem}.h-auto{height:auto}
.w-5{width:1.25rem}.w-9{width:2.25rem}.w-56{width:14rem}.w-full{width:100%}
.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}
.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}
.min-w-\[220px\]{min-width:220px}
.mx-auto{margin-left:auto;margin-right:auto}

/* ===== borders / radius ===== */
.border{border-width:1px;border-style:solid;border-color:var(--slate-200)}
.border-t{border-top-width:1px;border-style:solid;border-color:var(--slate-200)}
.border-b{border-bottom-width:1px;border-style:solid;border-color:var(--slate-200)}
.border-slate-200{border-color:var(--slate-200)}.border-slate-800{border-color:var(--slate-800)}
.border-slate-900{border-color:var(--slate-900)}
.border-butter-200{border-color:var(--butter-200)}.border-butter-300{border-color:var(--butter-300)}
.border-butter-400{border-color:var(--butter-400)}
.border-emerald-200{border-color:var(--emerald-200)}.border-sky-200{border-color:var(--sky-200)}
.border-orange-200{border-color:var(--orange-200)}
.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}
.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}
.rounded-b-sm{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}
.rounded-\[2rem\]{border-radius:2rem}
.ring-2{box-shadow:0 0 0 2px var(--ring-color,var(--butter-200))}
.ring-butter-200{--ring-color:var(--butter-200)}

/* ===== colors: background ===== */
.bg-white{background-color:#fff}.bg-white\/90{background-color:rgba(255,255,255,.9)}
.bg-slate-900{background-color:var(--slate-900)}
.bg-butter-50{background-color:var(--butter-50)}.bg-butter-100{background-color:var(--butter-100)}
.bg-butter-200{background-color:var(--butter-200)}.bg-butter-400{background-color:var(--butter-400)}
.bg-emerald-50{background-color:var(--emerald-50)}.bg-emerald-100{background-color:var(--emerald-100)}
.bg-sky-50{background-color:var(--sky-50)}.bg-sky-100{background-color:var(--sky-100)}
.bg-violet-100{background-color:var(--violet-100)}
.bg-orange-50{background-color:var(--orange-50)}
.bg-paper{background:linear-gradient(180deg,#fafbfc 0%,var(--slate-100) 100%)}

/* ===== colors: text ===== */
.text-white{color:#fff}
.text-slate-300{color:var(--slate-300)}.text-slate-400{color:var(--slate-400)}
.text-slate-500{color:var(--slate-500)}.text-slate-600{color:var(--slate-600)}
.text-slate-700{color:var(--slate-700)}.text-slate-800{color:var(--slate-800)}.text-slate-900{color:var(--slate-900)}
.text-butter-300{color:var(--butter-300)}.text-butter-700{color:var(--butter-700)}
.text-emerald-800{color:var(--emerald-800)}.text-sky-800{color:var(--sky-800)}
.text-violet-800{color:var(--violet-800)}.text-orange-800{color:var(--orange-800)}

/* ===== hover / interactive states ===== */
.hover\:text-butter-300:hover{color:var(--butter-300)}.hover\:text-butter-700:hover{color:var(--butter-700)}
.hover\:bg-butter-50:hover{background-color:var(--butter-50)}.hover\:bg-butter-300:hover{background-color:var(--butter-300)}
.hover\:bg-slate-50:hover{background-color:var(--slate-50)}.hover\:bg-slate-800:hover{background-color:var(--slate-800)}
.hover\:bg-emerald-200:hover{background-color:var(--emerald-200)}.hover\:bg-sky-200:hover{background-color:var(--sky-200)}
.hover\:bg-violet-200:hover{background-color:var(--violet-100)}
.hover\:border-butter-300:hover{border-color:var(--butter-300)}.hover\:border-slate-900:hover{border-color:var(--slate-900)}
.hover\:shadow-card:hover{box-shadow:var(--shadow-card)}.hover\:shadow-lg:hover{box-shadow:var(--shadow-lg)}
.hover\:underline:hover{text-decoration:underline}

/* ===== effects ===== */
.shadow-card{box-shadow:var(--shadow-card)}
.backdrop-blur{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.opacity-80{opacity:.8}.opacity-90{opacity:.9}

/* ===== typography ===== */
.font-display{font-family:var(--font-display)}.font-sans{font-family:var(--font-sans)}
.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}
.tracking-tight{letter-spacing:-.015em}.tracking-wider{letter-spacing:.05em}
.tracking-\[\.16em\]{letter-spacing:.16em}.tracking-\[\.18em\]{letter-spacing:.18em}
.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}
.leading-relaxed{line-height:1.65}.leading-5{line-height:1.25rem}.leading-\[1\.05\]{line-height:1.05}
.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}
.whitespace-nowrap{white-space:nowrap}.tabular-nums{font-variant-numeric:tabular-nums}
.underline{text-decoration:underline}.text-center{text-align:center}

/* font sizes: h1 ~2.0-2.4rem, h2 ~1.4-1.6rem, body 1.0-1.05rem, small .85rem */
.text-xs{font-size:.85rem}.text-sm{font-size:.9rem}.text-base{font-size:1rem}
.text-lg{font-size:1.05rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.375rem}
.text-3xl{font-size:1.5rem}.text-4xl{font-size:2.25rem}.text-5xl{font-size:2.4rem}.text-6xl{font-size:2.75rem}
.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}
.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}

/* ===== chrome landmarks (structural, no new colors needed) ===== */
.site-footer a{color:inherit}
.prose-slate{color:var(--slate-700)}
