/* PrintSheetLab design layer: buttons, controls, cards and motion. Loaded after site.css and tools.css. */
:root{
  --accent-grad:linear-gradient(135deg,#C8441E 0%,#A93616 100%);
  --navy:#1F3A68;--focus:#1F3A68;
  --ease-out:cubic-bezier(.2,.8,.2,1);
  --shadow-btn:0 1px 0 rgba(255,255,255,.18) inset,0 8px 18px -8px rgba(169,54,22,.7);
  --shadow-btn-hover:0 1px 0 rgba(255,255,255,.22) inset,0 14px 26px -10px rgba(169,54,22,.75);
  --shadow-card-hover:0 2px 4px rgba(27,34,51,.06),0 18px 36px -16px rgba(27,34,51,.3);
}

/* ---------- Buttons ---------- */
.mmp-btn{position:relative;isolation:isolate;overflow:hidden;gap:8px;letter-spacing:.005em;
  transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background-color .2s,color .2s,border-color .2s}
.mmp-btn:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.mmp-btn:active{transform:translateY(0) scale(.98)}
.mmp-btn[disabled],.mmp-btn[aria-busy=true]{cursor:progress;opacity:.8}

.mmp-btn--primary{background:var(--accent-grad);color:#fff;box-shadow:var(--shadow-btn)}
.mmp-btn--primary:hover{background:var(--accent-grad);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-btn-hover)}
/* Light sweep across the primary button on hover. */
.mmp-btn--primary::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 48%,transparent 66%);transform:translateX(-120%);transition:transform .7s var(--ease-out)}
.mmp-btn--primary:hover::after{transform:translateX(120%)}

.mmp-btn--ghost{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:0 1px 0 rgba(27,34,51,.04)}
.mmp-btn--ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-2px);box-shadow:0 12px 22px -12px rgba(27,34,51,.55)}

.mmp-btn--link{border-radius:8px}
.mmp-btn--link:hover{transform:none}

/* Button icons (drawn as masks so they follow the text color). */
.mmp-btn[data-icon]::before{content:"";flex:none;width:18px;height:18px;background:currentColor;
  -webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;transition:transform .25s var(--ease-out)}
.mmp-btn[data-icon=download]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E")}
.mmp-btn[data-icon=print]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 8V3h10v5M7 17H5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M7 14h10v7H7z'/%3E%3C/svg%3E")}
.mmp-btn[data-icon=refresh]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a8 8 0 1 1-2.6-5.9L20 8.5'/%3E%3Cpath d='M20 3.5v5h-5'/%3E%3C/svg%3E")}
.mmp-btn[data-icon=link]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14a4.5 4.5 0 0 0 6.4 0l3.2-3.2a4.5 4.5 0 0 0-6.4-6.4L12 5.6'/%3E%3Cpath d='M14 10a4.5 4.5 0 0 0-6.4 0l-3.2 3.2a4.5 4.5 0 0 0 6.4 6.4l1.2-1.2'/%3E%3C/svg%3E")}
.mmp-btn[data-icon=sliders]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1'/%3E%3Ccircle cx='15' cy='6' r='2'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E")}
.mmp-btn[data-icon=download]:hover::before{transform:translateY(2px)}
.mmp-btn[data-icon=refresh]:hover::before{transform:rotate(180deg)}
.mmp-btn[data-icon=print]:hover::before{transform:scale(1.1)}

/* Header call to action */
.main-navigation .main-nav ul li.mmp-nav-cta>a{background:var(--accent-grad);color:#fff;border-radius:999px;box-shadow:var(--shadow-btn);transition:transform .2s var(--ease-out),box-shadow .2s}
.main-navigation .main-nav ul li.mmp-nav-cta>a:hover{color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-btn-hover)}
/* Animated underline on the other menu links */
.main-navigation .main-nav ul li:not(.mmp-nav-cta)>a{background-image:linear-gradient(var(--accent),var(--accent));background-size:0 2px;background-position:14px calc(100% - 12px);background-repeat:no-repeat;transition:background-size .25s var(--ease-out),color .2s}
.main-navigation .main-nav ul li:not(.mmp-nav-cta)>a:hover,.main-navigation .main-nav ul li.current-menu-item:not(.mmp-nav-cta)>a{background-size:calc(100% - 28px) 2px}

/* ---------- Form controls in the makers ---------- */
.mmp-field input[type=text],.mmp-field input[type=number],.mmp-field select,.mmp-field textarea{transition:border-color .15s,box-shadow .15s;border-radius:10px}
.mmp-field input:hover,.mmp-field select:hover,.mmp-field textarea:hover{border-color:#B8C0CF}
.mmp-field input:focus,.mmp-field select:focus,.mmp-field textarea:focus{border-color:var(--navy);box-shadow:0 0 0 4px rgba(31,58,104,.14)}
.mmp-seg label{transition:background-color .2s var(--ease-out),color .2s,box-shadow .2s}
.mmp-seg label:hover{color:var(--ink)}
.mmp-seg input:checked+label{background:var(--ink);color:#fff;box-shadow:0 4px 10px -4px rgba(27,34,51,.5)}
.mmp-seg input:focus-visible+label{outline:3px solid var(--focus);outline-offset:1px}

/* Switch-style toggles */
.mmp-toggle input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:none;width:40px;height:24px;border-radius:999px;background:#C9D0DC;position:relative;cursor:pointer;transition:background-color .2s var(--ease-out)}
.mmp-toggle input[type=checkbox]::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(27,34,51,.3);transition:transform .22s var(--ease-out)}
.mmp-toggle input[type=checkbox]:checked{background:var(--ink)}
.mmp-toggle input[type=checkbox]:checked::after{transform:translateX(16px)}
.mmp-toggle input[type=checkbox]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.mmp-toggle:hover input[type=checkbox]:not(:checked){background:#B8C0CF}

.mmp-group>summary{transition:color .15s}
.mmp-group>summary:hover{color:var(--accent-dark)}

/* Status line */
.mmp-tool__status{border-radius:10px}

/* ---------- Cards ---------- */
.mmp-tool-card{transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),border-color .25s}
.mmp-tool-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);border-color:#C9D0DC}
.mmp-tool-card:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.mmp-tool-card__thumb img,.mmp-tool-card__thumb svg{transition:transform .35s var(--ease-out)}
.mmp-tool-card:hover .mmp-tool-card__thumb img,.mmp-tool-card:hover .mmp-tool-card__thumb svg{transform:scale(1.04)}
.mmp-tool-card__body h3{transition:color .2s}
.mmp-tool-card:hover .mmp-tool-card__body h3{color:var(--accent-dark)}

/* Gentle entrance for card grids */
@keyframes mmp-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.mmp-tools__grid>*{animation:mmp-rise .5s var(--ease-out) both}
.mmp-tools__grid>*:nth-child(2){animation-delay:.04s}.mmp-tools__grid>*:nth-child(3){animation-delay:.08s}
.mmp-tools__grid>*:nth-child(4){animation-delay:.12s}.mmp-tools__grid>*:nth-child(5){animation-delay:.16s}
.mmp-tools__grid>*:nth-child(n+6){animation-delay:.2s}

/* Article links and tables */
.entry-content a:not(.mmp-btn),.mmp-article a:not(.mmp-btn){text-decoration-thickness:2px;transition:color .15s,text-decoration-color .15s}
.entry-content table{border-collapse:collapse;width:100%;font-size:15.5px}
.entry-content table th{background:#EEF1F7;text-align:left}
.entry-content table th,.entry-content table td{border:1px solid var(--line);padding:9px 12px;vertical-align:top}
.entry-content table tbody tr:nth-child(even){background:#FAFBFD}

/* ---------- Small screens ---------- */
@media (max-width:640px){
  .mmp-tool__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .mmp-tool__actions .mmp-btn{width:100%;padding:13px 12px}
  .mmp-tool__actions .mmp-btn--primary{grid-column:1/-1}
  .mmp-tool__actions .mmp-btn--link,.mmp-tool__actions .mmp-only-mobile{grid-column:1/-1}
  .mmp-tool__actions .mmp-btn{justify-content:center}
  .entry-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:normal}
  .entry-content table th,.entry-content table td{min-width:110px}
}

@media (prefers-reduced-motion:reduce){
  .mmp-btn,.mmp-btn::before,.mmp-btn::after,.mmp-tool-card,.mmp-tool-card *,.mmp-toggle input,.mmp-toggle input::after{transition:none!important}
  .mmp-tools__grid>*{animation:none}
  .mmp-btn--primary::after{display:none}
}

/* Two-up fields (number ranges, digit pickers) */
.mmp-range-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.mmp-range-grid[hidden],.mmp-field[hidden]{display:none}

/* ---------- Article sidebar (contents + more in this section) ---------- */
.mmp-side-related{display:none}
.mmp-sidebar .mmp-toc{margin:24px 0}
@media (min-width:1024px){
  .mmp-article{max-width:none;display:grid;grid-template-columns:minmax(0,72ch) minmax(240px,300px);column-gap:clamp(32px,5vw,72px);align-items:start}
  .mmp-article>*{grid-column:1}
  .mmp-article>.mmp-sidebar{grid-column:2;grid-row:1/span 999;position:sticky;top:24px;align-self:start;max-height:calc(100vh - 48px);overflow:auto;scrollbar-width:thin;padding:2px}
  .admin-bar .mmp-article>.mmp-sidebar{top:56px;max-height:calc(100vh - 80px)}
  .mmp-sidebar .mmp-toc{margin:0 0 18px;max-width:none;padding:18px 20px;border-radius:16px}
  .mmp-sidebar .mmp-toc ol{columns:1;padding-left:18px;font-size:15px}
  .mmp-sidebar .mmp-toc li{margin:0 0 7px;line-height:1.35}
  .mmp-sidebar .mmp-toc a{color:var(--muted);transition:color .15s}
  .mmp-sidebar .mmp-toc a:hover,.mmp-sidebar .mmp-toc a.is-active{color:var(--ink);text-decoration:none}
  .mmp-sidebar .mmp-toc a.is-active{font-weight:800}
  .mmp-side-related{display:block;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 20px}
  .mmp-side-related__group{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
  .mmp-side-related ul{list-style:none;margin:0;padding:0}
  .mmp-side-related li{margin:0}
  .mmp-side-related li a{display:block;padding:6px 10px;margin:0 -10px;border-radius:8px;font-size:15px;font-weight:700;color:var(--ink);text-decoration:none;transition:background-color .15s,color .15s}
  .mmp-side-related li a:hover{background:var(--bg);color:var(--accent-dark)}
  .mmp-side-related li.is-current a{background:#FDECE6;color:var(--accent-dark)}
  .mmp-side-related__all{display:inline-block;margin-top:12px;font-weight:800;font-size:14px}
}
/* ---------- Worksheet topic pages: left menu, sub-topic cards, worksheet PDF cards ---------- */
.mmp-topic{padding-top:24px}
.mmp-topic__layout{display:block}
.mmp-topic__main{min-width:0}
.mmp-topic__intro h1{margin-bottom:.3em}
.mmp-topic__lead{font-size:1.1rem;color:var(--muted);max-width:70ch;margin:0 0 10px}
.mmp-topic__facts{display:inline-block;font-size:14px;font-weight:800;color:var(--navy);background:#E7EDF7;border-radius:999px;padding:4px 14px;margin:4px 0 0}
.mmp-topic__section{margin:34px 0 0}
.mmp-topic__h{font-size:1.45rem;margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid var(--line);position:relative}
.mmp-topic__h::after{content:"";position:absolute;left:0;bottom:-2px;width:64px;height:2px;background:var(--accent)}
.mmp-topic .mmp-article{display:block;max-width:72ch;margin-top:40px}
.mmp-topic .mmp-side-related{display:none!important}
.mmp-topic .mmp-sidebar{position:static!important;max-height:none!important}
.mmp-topic__maker-lead{color:var(--muted);margin:-4px 0 16px}

.mmp-topic-nav{margin:0 0 20px}
.mmp-topic-nav__box{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:6px 16px}
.mmp-topic-nav__box>summary{cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:1.05rem;padding:10px 0;list-style-position:inside}
.mmp-topic-nav__subject{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.mmp-topic-nav ul{list-style:none;margin:0 0 6px;padding:0}
.mmp-topic-nav li{margin:0}
.mmp-topic-nav a{display:block;padding:6px 10px;margin:0 -10px;border-radius:8px;font-weight:700;font-size:15px;color:var(--ink);text-decoration:none;transition:background-color .15s,color .15s}
.mmp-topic-nav a:hover{background:var(--bg);color:var(--accent-dark)}
.mmp-topic-nav li.is-open>a{color:var(--accent-dark)}
.mmp-topic-nav li.is-current>a{background:#FDECE6;color:var(--accent-dark)}
.mmp-topic-nav li ul{margin:2px 0 6px 10px;padding-left:10px;border-left:2px solid var(--line)}
.mmp-topic-nav li ul a{font-weight:600;font-size:14px;padding:5px 10px}

@media (min-width:1024px){
  .mmp-topic__layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;align-items:start}
  .mmp-topic-nav{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;scrollbar-width:thin;margin:0}
  .admin-bar .mmp-topic-nav{top:56px}
  .mmp-topic-nav__box{padding:6px 18px 12px}
}

.mmp-subtopics{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.mmp-subtopic{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;color:var(--ink);transition:transform .2s var(--ease-out),box-shadow .2s,border-color .2s}
.mmp-subtopic:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover);border-color:#C9D0DC;color:var(--ink)}
.mmp-subtopic__title{font-family:var(--font-display);font-weight:600;font-size:1.12rem;color:var(--ink)}
.mmp-subtopic:hover .mmp-subtopic__title{color:var(--accent-dark)}
.mmp-subtopic__desc{font-size:15px;color:var(--muted);line-height:1.5}
.mmp-subtopic__ex{font-size:14px;font-weight:700;color:var(--navy)}
.mmp-subtopic__meta{font-size:13px;font-weight:800;color:var(--muted);margin-top:auto}

.mmp-sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}
.mmp-sheet-card{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;transition:box-shadow .2s,border-color .2s}
.mmp-sheet-card:hover{box-shadow:var(--shadow-card-hover);border-color:#C9D0DC}
.mmp-sheet-card:target{border-color:var(--accent);box-shadow:0 0 0 3px rgba(200,68,30,.18)}
.mmp-sheet-card__thumb{display:block;align-self:start;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 4px 12px -6px rgba(27,34,51,.3);transition:transform .25s var(--ease-out)}
.mmp-sheet-card__thumb:hover{transform:scale(1.03)}
.mmp-sheet-card__thumb img{display:block;width:100%;height:auto}
.mmp-sheet-card__body h3{font-size:1.08rem;margin:0 0 4px}
.mmp-sheet-card__body p{margin:0 0 8px;font-size:15px;line-height:1.5;color:var(--ink)}
.mmp-sheet-card__meta{font-size:13px!important;font-weight:700;color:var(--muted)!important}
.mmp-sheet-card__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mmp-btn--sm{padding:9px 14px;font-size:14px;gap:6px}
.mmp-btn--sm[data-icon]::before{width:15px;height:15px}
.mmp-sheet-card__paper{font-weight:600;opacity:.85}
@media (max-width:520px){.mmp-sheets{grid-template-columns:1fr}.mmp-sheet-card{grid-template-columns:96px minmax(0,1fr);gap:12px}}

/* ==== Library shell: category directory + main column (all section pages) ==== */
.mmp-shell{display:flex;flex-direction:column;gap:36px}
.mmp-shell__main{min-width:0}
.mmp-dir-jump{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:800;font-size:14px;color:var(--navy);text-decoration:none}
.mmp-dir-jump::before{content:"";width:14px;height:10px;background:linear-gradient(currentColor 0 0) 0 0/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 50%/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 100%/100% 2px no-repeat}
.mmp-dir-jump:hover{border-color:var(--navy);color:var(--navy)}
@media (min-width:1024px){
  .mmp-shell{display:grid;grid-template-columns:252px minmax(0,1fr);gap:36px;align-items:start}
  .mmp-shell__main{grid-column:2;grid-row:1}
  .mmp-dir{grid-column:1;grid-row:1}
  .mmp-dir-jump{display:none}
}

.mmp-dir{display:flex;flex-direction:column;gap:16px;font-size:15px}
.mmp-dir__search{display:flex;border:1px solid #C9D0DC;border-radius:10px;background:var(--surface);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.mmp-dir__search:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(31,58,104,.15)}
.mmp-dir__search input{flex:1;min-width:0;border:0!important;background:transparent!important;padding:10px 12px!important;font-size:15px;box-shadow:none!important;outline:0}
.mmp-dir__search button{border:0;background:transparent;color:var(--muted);padding:0 12px;cursor:pointer}
.mmp-dir__search button:hover{color:var(--navy);background:transparent}

.mmp-dir__box{--box:#2F6DB5;--box2:#4B8FD6;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(27,34,51,.05)}
.mmp-dir__box--puzzles{--box:#6A4BB8;--box2:#8B6FD6}
.mmp-dir__box--paper{--box:#0E7C72;--box2:#1FA396}
.mmp-dir__box--calendars{--box:#C8441E;--box2:#E26A3F}
.mmp-dir__box--makers{--box:#1F3A68;--box2:#35598F}
.mmp-dir__h{margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;text-align:center;background:linear-gradient(100deg,var(--box),var(--box2))}
.mmp-dir__h a{display:block;padding:10px 12px;color:#fff;text-decoration:none}
.mmp-dir__h a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.mmp-dir__box>ul{list-style:none;margin:0;padding:8px 8px 4px}
.mmp-dir li{margin:0}
.mmp-dir li a{display:block;padding:4px 8px;border-radius:6px;color:var(--ink);text-decoration:none;line-height:1.35;transition:background-color .15s,color .15s,padding-left .15s}
.mmp-dir li a:hover{background:color-mix(in srgb,var(--box) 9%,#fff);color:var(--box);padding-left:12px}
.mmp-dir li.is-open>a{font-weight:800;color:var(--box)}
.mmp-dir li.is-current>a{background:color-mix(in srgb,var(--box) 12%,#fff);color:var(--box);font-weight:800}
.mmp-dir li ul{list-style:none;margin:2px 0 6px 12px;padding:0 0 0 8px;border-left:2px solid color-mix(in srgb,var(--box) 30%,#fff)}
.mmp-dir li ul a{font-size:14px;padding:3px 8px}
.mmp-dir__more{display:block;padding:6px 16px 10px;font-size:13px;font-weight:800;font-style:italic;color:var(--box);text-decoration:none}
.mmp-dir__more:hover{text-decoration:underline;color:var(--box)}
@media (max-width:1023px){
  .mmp-dir{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;padding-top:24px;border-top:2px solid var(--line)}
  .mmp-dir__search{grid-column:1/-1}
}

/* Section headings: centred label between two rules */
.mmp-shell .mmp-topic__h{display:flex;align-items:center;gap:14px;font-size:1.3rem;text-align:center;border:0;padding:0;margin:0 0 16px;color:var(--navy)}
.mmp-shell .mmp-topic__h::before,.mmp-shell .mmp-topic__h::after{content:"";position:static;flex:1;height:2px;width:auto;background:linear-gradient(90deg,transparent,#C9D0DC)}
.mmp-shell .mmp-topic__h::after{background:linear-gradient(90deg,#C9D0DC,transparent)}
.mmp-shell .mmp-topic__h>span{flex:0 1 auto}

.mmp-topic__facts{display:flex;flex-wrap:wrap;gap:8px;background:none;padding:0;border-radius:0}
.mmp-topic__facts span{font-size:13px;font-weight:800;color:var(--navy);background:#E7EDF7;border-radius:999px;padding:4px 12px}
.mmp-topic__facts span:last-child:not(:first-child){background:#FDECE6;color:var(--accent-dark)}

/* Topic index: catalogue rows */
.mmp-topiclist{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.mmp-topicrow{display:grid;grid-template-columns:84px minmax(0,1fr);gap:16px;align-items:start;padding:16px 18px;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);transition:background-color .15s}
.mmp-topicrow:first-child{border-top:0}
.mmp-topicrow:hover{background:#F7F9FC;color:var(--ink)}
.mmp-topicrow__thumb{display:block;aspect-ratio:17/22;border:1px solid var(--line);border-radius:4px;background:#fff;overflow:hidden;box-shadow:0 3px 8px -4px rgba(27,34,51,.3);transition:transform .25s var(--ease-out)}
.mmp-topicrow:hover .mmp-topicrow__thumb{transform:rotate(-2deg) scale(1.05)}
.mmp-topicrow__thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.mmp-topicrow__body{display:flex;flex-direction:column;gap:4px}
.mmp-topicrow__title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:#1F5FA8;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .15s}
.mmp-topicrow:hover .mmp-topicrow__title{text-decoration-color:currentColor}
.mmp-topicrow__desc{font-size:15px;line-height:1.5}
.mmp-topicrow__ex{font-size:14px;color:var(--muted)}
.mmp-topicrow__ex b{color:var(--ink)}
.mmp-topicrow__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;font-weight:700;font-style:italic;color:var(--muted)}
.mmp-topicrow__count{font-style:normal;color:var(--accent-dark)}
@media (max-width:520px){.mmp-topicrow{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:14px}}

/* Leaf pages: worksheet cards in a grid */
.mmp-shell .mmp-sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.mmp-shell .mmp-sheet-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:14px}
.mmp-sheet-card__title{font-size:1.02rem!important;line-height:1.3;margin:0!important;min-height:2.6em}
.mmp-sheet-card__title a{color:#1F5FA8;text-decoration:none}
.mmp-sheet-card__title a:hover{text-decoration:underline;text-underline-offset:3px}
.mmp-shell .mmp-sheet-card__thumb{align-self:center;width:100%;max-width:200px;aspect-ratio:17/22}
.mmp-shell .mmp-sheet-card__thumb img{height:100%;object-fit:cover;object-position:top}
.mmp-shell .mmp-sheet-card__thumb:hover{transform:translateY(-3px) rotate(-1deg)}
.mmp-shell .mmp-sheet-card__body{display:flex;flex-direction:column;flex:1}
.mmp-shell .mmp-sheet-card__body p{font-size:14px}
.mmp-shell .mmp-sheet-card__actions{margin-top:auto;padding-top:4px}
.mmp-shell .mmp-sheet-card__actions{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}
.mmp-shell .mmp-sheet-card__actions .mmp-btn--primary{grid-column:1/-1;justify-content:center;width:100%}
.mmp-shell .mmp-sheet-card__actions .mmp-btn--link{justify-self:end}
@media (max-width:520px){.mmp-shell .mmp-sheets{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mmp-shell .mmp-sheet-card{padding:10px}.mmp-shell .mmp-sheet-card__body p:not(.mmp-sheet-card__meta){display:none}}

/* Article column inside the shell: contents box above the text instead of a third column */
.mmp-shell .mmp-article{display:block;max-width:74ch;margin-top:44px}
.mmp-shell .mmp-sidebar{position:static!important;max-height:none!important;width:auto!important;margin:0 0 24px}
.mmp-shell .mmp-side-related{display:none!important}

/* Homepage */
.mmp-home{padding-top:24px}
.mmp-hero--home{background:linear-gradient(135deg,#FFF6EF,#EEF3FB);border:1px solid var(--line);border-radius:20px;padding:clamp(22px,4vw,40px);margin:0}
.mmp-hero--home .mmp-hero__grid{display:grid;gap:24px;align-items:center}
.mmp-hero--home h1{font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.12;margin:0 0 12px}
@media (min-width:1180px){.mmp-hero--home .mmp-hero__grid{grid-template-columns:minmax(0,1fr) 220px}}
@media (max-width:1179px){.mmp-hero--home .mmp-hero__stack{display:none}}
.mmp-home__block{margin-top:40px}
.mmp-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.mmp-tile{--box:#2F6DB5;--box2:#4B8FD6;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .25s var(--ease-out),box-shadow .25s}
.mmp-tile--puzzles{--box:#6A4BB8;--box2:#8B6FD6}.mmp-tile--paper{--box:#0E7C72;--box2:#1FA396}.mmp-tile--calendars{--box:#C8441E;--box2:#E26A3F}
.mmp-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);color:var(--ink)}
.mmp-tile__bar{display:block;padding:9px 12px;text-align:center;font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:#fff;background:linear-gradient(100deg,var(--box),var(--box2))}
.mmp-tile__img{display:flex;justify-content:center;align-items:flex-start;height:170px;overflow:hidden;background:color-mix(in srgb,var(--box) 8%,#fff);padding:14px 14px 0}
.mmp-tile__img img{width:78%;height:auto;border-radius:3px 3px 0 0;box-shadow:0 6px 16px -6px rgba(27,34,51,.35);transition:transform .3s var(--ease-out)}
.mmp-tile:hover .mmp-tile__img img{transform:translateY(-6px) rotate(-1.5deg)}
.mmp-tile__mini{display:block;width:78%;height:100%;background:#fff;border-radius:3px 3px 0 0;box-shadow:0 6px 16px -6px rgba(27,34,51,.35)}
.mmp-tile__txt{display:block;padding:10px 14px 14px;font-size:14px;line-height:1.45;color:var(--muted)}
.mmp-newest{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.mmp-newest__item{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink)}
.mmp-newest__img{display:block;aspect-ratio:17/22;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 4px 12px -6px rgba(27,34,51,.3);transition:transform .25s var(--ease-out)}
.mmp-newest__img img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.mmp-newest__item:hover .mmp-newest__img{transform:translateY(-3px)}
.mmp-newest__title{font-weight:800;font-size:14px;line-height:1.3;color:#1F5FA8}
.mmp-newest__topic{font-size:13px;color:var(--muted)}
.mmp-home .mmp-promise{background:none;padding:0}
.mmp-home .mmp-promise__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:0}
.mmp-home .mmp-promise__grid>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.mmp-home .mmp-promise dt{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin:0 0 4px}
.mmp-home .mmp-promise dd{margin:0;font-size:15px;color:var(--muted)}
.mmp-home .mmp-faq{background:none;padding:0}
@media (prefers-reduced-motion:reduce){.mmp-tile,.mmp-tile__img img,.mmp-topicrow__thumb,.mmp-newest__img,.mmp-dir li a{transition:none!important}}
.mmp-topicrow__mini{display:block;width:100%;height:100%}
.mmp-hub .mmp-topic__intro{margin-bottom:6px}

.mmp-hero--home .mmp-hero__search{display:flex;flex-wrap:nowrap;gap:8px;max-width:520px}
.mmp-hero--home .mmp-hero__search input{flex:1 1 auto;min-width:0;width:auto}
.mmp-hero--home .mmp-hero__search button{flex:0 0 auto;width:auto}
@media (max-width:520px){.mmp-shell .mmp-sheet-card__actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.mmp-shell .mmp-sheet-card__actions .mmp-btn--primary{flex:1 1 100%}.mmp-shell .mmp-sheet-card__actions .mmp-btn--link{font-size:13px;padding-inline:0}.mmp-shell .mmp-sheet-card__actions .mmp-btn--link::before{display:none}.mmp-shell .mmp-sheet-card__meta{font-size:12px!important}.mmp-sheet-card__title{font-size:.95rem!important}}

/* ===== PrintSheetLab members: accounts, saves, newsletter, contact ===== */
[data-icon=heart]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.3-8.9-8.6C1.7 8.4 3.5 5 6.9 5c2 0 3.3 1.1 5.1 3 1.8-1.9 3.1-3 5.1-3 3.4 0 5.2 3.4 3.8 6.4C19 15.7 12 20 12 20z'/%3E%3C/svg%3E")}
.mmp-sheet-card[id]{position:relative}
.psl-fav{position:absolute;top:10px;right:10px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:#9aa1ad;cursor:pointer;padding:0;transition:transform .15s var(--ease-out),color .15s,border-color .15s;z-index:2}
.psl-fav svg{fill:none;stroke:currentColor;stroke-width:2}
.psl-fav:hover{color:#C8441E;border-color:#C8441E;transform:scale(1.06)}
.psl-fav.is-on{color:#C8441E;border-color:#C8441E}
.psl-fav.is-on svg{fill:currentColor}
.psl-fav:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.psl-pop{position:absolute;z-index:9999;width:280px;max-width:calc(100vw - 24px);background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-card-hover);font-size:15px}
.psl-pop p{margin:.5em 0 0}
.psl-pop__x{position:absolute;top:6px;right:8px;border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:#6b7280;padding:4px}
.psl-pop__login{margin-left:10px;font-weight:600}
.psl-auth{max-width:460px;margin:8px 0 24px}
.psl-form{background:var(--surface,#fff);border:1px solid var(--line);border-radius:16px;padding:22px}
.psl-form p{margin:0 0 14px}
.psl-form label{display:block;font-weight:600;margin-bottom:4px}
.psl-form input[type=text],.psl-form input[type=email],.psl-form input[type=password],.psl-form select,.psl-form textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.psl-form input:focus,.psl-form select:focus,.psl-form textarea:focus{outline:3px solid rgba(31,58,104,.25);border-color:var(--navy)}
.psl-form textarea{min-height:150px;resize:vertical}
.psl-form .mmp-btn{width:100%;justify-content:center}
.psl-check{display:flex!important;gap:8px;align-items:flex-start;font-weight:400!important}
.psl-check input{margin-top:4px;flex:none}
.psl-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.psl-wide{max-width:none}
.psl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.psl-switch{text-align:center;margin-top:12px!important}
.psl-or{display:flex;align-items:center;gap:10px;color:#6b7280;margin:14px 0;font-size:14px}
.psl-or:before,.psl-or:after{content:"";flex:1;border-top:1px solid var(--line)}
.psl-alert{border-radius:10px;padding:10px 14px;margin:0 0 14px;border:1px solid}
.psl-alert--error{background:#fdf0ec;border-color:#f0b9a8;color:#7a2a12}
.psl-alert--ok{background:#eef7f0;border-color:#b5dbbf;color:#1f5130}
.psl-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 18px}
.psl-tabs a,.psl-tabs button{padding:10px 14px;border:0;background:none;font:inherit;font-weight:600;color:#4b5563;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;text-decoration:none}
.psl-tabs .is-active,.psl-tabs [aria-selected=true]{color:#C8441E;border-bottom-color:#C8441E}
.psl-panel{margin-bottom:28px}
.psl-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff)}
.psl-list li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--line);margin:0}
.psl-list li:first-child{border-top:0}
.psl-list small{color:#6b7280}
.psl-empty{color:#6b7280;padding:18px;border:1px dashed var(--line);border-radius:14px;text-align:center}
.psl-del{border:0;background:none;color:#9aa1ad;cursor:pointer;font-size:14px;text-decoration:underline}
.psl-del:hover{color:#C8441E}
.psl-danger{margin-top:28px;border:1px solid #f0b9a8;border-radius:14px;padding:18px;background:#fdf6f3}
.psl-danger h3{margin-top:0;color:#7a2a12}
.psl-guest{border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--surface,#fff)}
.psl-news{border-radius:18px;padding:24px;background:linear-gradient(135deg,#fff6ef,#f4f0ff);border:1px solid var(--line)}
.psl-news h2,.psl-news h3{margin:0 0 6px}
.psl-news__form{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.psl-news__form input[type=email]{flex:1 1 220px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.psl-news__msg{flex-basis:100%;margin:4px 0 0;font-size:14px;min-height:1em}
.psl-news-band{max-width:1200px;margin:0 auto 28px;padding:0 16px}
.mmp-footer .psl-news{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:inherit}
.mmp-footer .psl-news__form input[type=email]{color:#1b2233}
.psl-save.is-saved{color:#C8441E}
@media (max-width:600px){.psl-form{padding:16px}.psl-list li{flex-wrap:wrap}.psl-fav{top:8px;right:8px}}
.psl-optional{font-weight:400;color:#6b7280;font-size:.9em}
.psl-meta{color:#6b7280;font-size:14px}
.psl-google{display:flex;justify-content:center;min-height:44px}
.psl-tabs a:hover{color:#C8441E}

/* Header account button (last item, after search) */
.psl-hdr{display:flex;align-items:center;padding-left:8px}
.main-navigation .menu-bar-items .psl-hdr>a.psl-hdr__btn{display:inline-flex;align-items:center;gap:8px;height:40px;line-height:1;padding:0 18px 0 13px;border:1.5px solid var(--navy);border-radius:999px;color:var(--navy);font-weight:700;font-size:15px;text-decoration:none;background:transparent;transition:background .2s,color .2s,box-shadow .2s,transform .2s var(--ease-out)}
.psl-hdr__btn svg{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;flex:none}
.main-navigation .menu-bar-items .psl-hdr>a.psl-hdr__btn:hover,.main-navigation .menu-bar-items .psl-hdr>a.psl-hdr__btn:focus-visible{background:var(--navy);color:#fff;box-shadow:0 10px 20px -12px rgba(31,58,104,.8);transform:translateY(-1px)}
.main-navigation .menu-bar-items .psl-hdr>a.psl-hdr__btn--in{padding-left:5px}
.psl-hdr__av{width:28px;height:28px;border-radius:50%;background:var(--accent-grad);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800}
@media (max-width:768px){.main-navigation .menu-bar-items .psl-hdr>a.psl-hdr__btn{height:36px;font-size:14px;padding:0 13px 0 10px}}
@media (max-width:420px){.psl-hdr__t{display:none}.main-navigation .menu-bar-items .psl-hdr>a.psl-hdr__btn{width:36px;padding:0;justify-content:center}.main-navigation .menu-bar-items .psl-hdr>a.psl-hdr__btn--in{width:auto;padding:0 4px}}
@media (prefers-reduced-motion:reduce){.psl-hdr__btn{transition:none}}

/* ==== No underlined links (site-wide rule) ==== */
a,a:hover,a:focus,a:active{text-decoration:none!important}
.entry-content a:not(.mmp-btn):not(.mmp-tool-card):not(.mmp-tile),.mmp-article a:not(.mmp-btn):not(.mmp-tool-card):not(.mmp-tile){color:var(--accent-dark);font-weight:700;transition:color .15s,background-color .15s;border-radius:3px}
.entry-content a:not(.mmp-btn):hover,.mmp-article a:not(.mmp-btn):hover{color:var(--navy)}
.mmp-crumbs a{color:var(--accent-dark);font-weight:700}.mmp-crumbs a:hover{color:var(--navy)}
.mmp-footer a:hover,.mmp-footer a:focus-visible{color:#FF9B7A}
.mmp-dir__h a:hover,.mmp-dir__more:hover{opacity:.85}
.mmp-sheet-card__title a:hover{color:var(--accent-dark)}
.mmp-topicrow:hover .mmp-topicrow__title{color:var(--accent-dark)}
.psl-del{text-decoration:none}
a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
/* ==== Full-width content + FAQ accordion ==== */
.mmp-shell__main .mmp-article{max-width:none}
.psl-faq{margin:48px 0 8px;padding:28px clamp(18px,3vw,34px) 30px;background:linear-gradient(160deg,#FFF6F1 0%,#F3F6FC 100%);border:1px solid var(--line);border-radius:22px}
.psl-faq__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 16px;margin-bottom:6px}
.psl-faq__head h2{margin:0}
.psl-faq__count{margin:0;font-weight:800;font-size:14px;color:var(--accent-dark);letter-spacing:.02em}
.psl-faq__intro{color:var(--muted)}
.psl-faq__list{display:grid;gap:10px;margin-top:16px}
.psl-faq__item{background:var(--surface);border:1px solid var(--line);border-radius:14px;transition:box-shadow .2s,border-color .2s}
.psl-faq__item[open]{border-color:rgba(200,68,30,.35);box-shadow:0 10px 26px -18px rgba(27,34,51,.45)}
.psl-faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;cursor:pointer;list-style:none;border-radius:14px}
.psl-faq__item summary::-webkit-details-marker{display:none}
.psl-faq__item summary:hover .psl-faq__q{color:var(--accent-dark)}
.psl-faq__item summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.psl-faq .psl-faq__q{margin:0;font-size:1.08rem;line-height:1.35;transition:color .15s}
.psl-faq__icon{flex:none;position:relative;width:30px;height:30px;border-radius:50%;background:#FDEBE4;transition:transform .25s var(--ease-out),background .2s}
.psl-faq__icon::before,.psl-faq__icon::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2.4px;margin:-1.2px 0 0 -6px;border-radius:2px;background:var(--accent-dark)}
.psl-faq__icon::after{transform:rotate(90deg);transition:transform .25s var(--ease-out)}
.psl-faq__item[open] .psl-faq__icon{background:var(--accent-dark)}
.psl-faq__item[open] .psl-faq__icon::before,.psl-faq__item[open] .psl-faq__icon::after{background:#fff}
.psl-faq__item[open] .psl-faq__icon::after{transform:rotate(0)}
.psl-faq__a{padding:0 20px 18px}
.psl-faq__a>*:last-child{margin-bottom:0}
@media (max-width:600px){.psl-faq{padding:22px 14px;border-radius:18px}.psl-faq__item summary{padding:14px}.psl-faq__a{padding:0 14px 14px}}
@media (prefers-reduced-motion:reduce){.psl-faq__icon,.psl-faq__icon::after{transition:none}}

/* ==== Place value explorer ==== */
.pv-exp{--c0:#C8441E;--c0b:#FDEBE4;--c1:#1F3A68;--c1b:#E3EAF6;--c2:#2E7D5B;--c2b:#E0F2E9;--c3:#7A4DB3;--c3b:#EEE6F9;--c4:#0E7C86;--c4b:#DDF3F4;--cd:#A8680F;--cdb:#FBF0DA;margin:18px 0 30px;padding:22px clamp(14px,3vw,28px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.pv-exp__bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.pv-exp__label{flex-basis:100%;font-family:var(--font-display);font-weight:600;font-size:1.05rem}
.pv-exp__input{flex:1 1 220px;min-width:0;font:600 1.5rem/1.2 var(--font-display);letter-spacing:.03em;padding:10px 16px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink)}
.pv-exp__input:focus{outline:none;border-color:var(--accent-dark);box-shadow:0 0 0 4px rgba(200,68,30,.14)}
.pv-exp__sys{display:inline-flex;padding:4px;border-radius:999px;background:#F1F3F8}
.pv-exp__sys button{border:0;background:none;padding:8px 14px;border-radius:999px;font:800 14px var(--font-body);color:var(--muted);cursor:pointer}
.pv-exp__sys button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 2px 6px rgba(27,34,51,.14)}
.pv-exp__op{border:2px solid var(--navy);background:var(--navy);color:#fff;padding:9px 16px;border-radius:999px;font:800 15px var(--font-body);cursor:pointer;transition:transform .15s,background .15s}
.pv-exp__op:hover{transform:translateY(-1px)}
.pv-exp__op--ghost{background:#fff;color:var(--navy)}
.pv-exp__msg{min-height:1.4em;margin:10px 0 4px;font-size:14px;font-weight:700;color:var(--accent-dark)}
.pv-exp__scroll{overflow-x:auto;padding-bottom:6px}
.pv-exp__grid{display:grid;gap:0;min-width:min(100%,calc(var(--cols) * 64px))}
.pv-exp__row{display:flex}
.pv-exp__h,.pv-exp__d{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #fff}
.pv-exp__h{padding:8px 4px;min-height:58px;font:600 clamp(11px,1.3vw,14px)/1.15 var(--font-display);border-radius:10px 10px 0 0}
.pv-exp__d{height:clamp(62px,9vw,96px);font:600 clamp(28px,5vw,52px)/1 var(--font-display);background:#fff;border:1px solid var(--line);overflow:hidden}
.pv-exp__d span{display:block}
.pv-exp__dot{flex:.4 1 0}
.pv-exp__h.pv-exp__dot{background:none}
.pv-exp__d.pv-exp__dot{border:0;background:none;font-size:clamp(22px,4vw,40px)}
.pv-c0{--c:var(--c0);--cb:var(--c0b)}.pv-c1{--c:var(--c1);--cb:var(--c1b)}.pv-c2{--c:var(--c2);--cb:var(--c2b)}.pv-c3{--c:var(--c3);--cb:var(--c3b)}.pv-c4{--c:var(--c4);--cb:var(--c4b)}.pv-cdec{--c:var(--cd);--cb:var(--cdb)}
.pv-exp__h[class*=pv-c]{background:var(--cb);color:var(--c)}
.pv-exp__d[class*=pv-c]{color:var(--c);background:linear-gradient(#fff,var(--cb))}
.pv-exp__d.is-empty{background:#FAFBFC}
.pv-exp__d.is-slide-left span{animation:pvLeft .45s var(--ease-out)}
.pv-exp__d.is-slide-right span{animation:pvRight .45s var(--ease-out)}
@keyframes pvLeft{from{transform:translateX(110%);opacity:.2}to{transform:none;opacity:1}}
@keyframes pvRight{from{transform:translateX(-110%);opacity:.2}to{transform:none;opacity:1}}
.pv-exp__forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px;margin:18px 0 12px}
.pv-exp__forms>div{padding:12px 16px;border-radius:14px;background:#F6F8FC;border:1px solid var(--line);min-width:0}
.pv-exp__forms dt{font:800 12px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv-exp__forms dd{margin:4px 0 0;font-weight:700;overflow-wrap:anywhere}
.pv-exp__chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pv-exp__chips li{display:inline-flex;align-items:center;gap:8px;margin:0;padding:6px 12px 6px 6px;border-radius:999px;background:var(--cb);color:var(--c);font-size:14px;font-weight:700}
.pv-exp__chips b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c);color:#fff;font-family:var(--font-display)}
@media (prefers-reduced-motion:reduce){.pv-exp__d span{animation:none!important}}

/* ==== Ready-to-print gallery cards ==== */
.psl-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:16px;margin:16px 0 34px}
.psl-gcard{margin:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:transform .2s var(--ease-out),box-shadow .2s}
.psl-gcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}
.psl-gcard__img{display:block;aspect-ratio:1.29;background:#F3F5F9;padding:12px;border-bottom:1px solid var(--line)}
.psl-gcard__img img{width:100%;height:100%;object-fit:contain;border-radius:6px;box-shadow:0 4px 12px -6px rgba(27,34,51,.35);background:#fff}
.psl-gcard figcaption{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;flex:1}
.psl-gcard figcaption strong{font-family:var(--font-display);font-weight:600;font-size:1.05rem;line-height:1.25;color:var(--ink)}
.psl-gcard figcaption span{font-size:14px;color:var(--muted);line-height:1.45}
.psl-gcard__acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px}
.mmp-article .psl-gcard__acts a.mmp-btn--primary{color:#fff}
.mmp-article .psl-gcard__acts a.mmp-btn--ghost{color:var(--ink)}

/* ==== Maker page hero with banner ==== */
.mmp-toolpage__intro.has-banner{position:relative;display:flex;align-items:center;overflow:hidden;min-height:clamp(340px,34vw,430px);margin-bottom:24px;padding:clamp(24px,4vw,48px);background:#F6F4EF;border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 50px -36px rgba(27,34,51,.6)}
.mmp-toolpage__intro.has-banner .mmp-toolpage__text{position:relative;z-index:2;max-width:min(42%,470px)}
.mmp-toolpage__intro.has-banner h1{margin:0 0 12px;font-size:clamp(2rem,3.3vw,2.9rem);line-height:1.08;text-wrap:balance}
.mmp-toolpage__intro.has-banner p{margin:0;font-size:1.06rem;color:#3A4255}
.mmp-toolpage__banner{position:absolute;inset:0;z-index:1}
.mmp-toolpage__banner img{display:block;width:100%;height:100%;object-fit:cover;object-position:78% 50%}
.mmp-toolpage__banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,244,239,.99) 0%,rgba(246,244,239,.95) 40%,rgba(246,244,239,.55) 50%,rgba(246,244,239,0) 60%)}
@media (max-width:900px){.mmp-toolpage__intro.has-banner{flex-direction:column;align-items:stretch;min-height:0;padding:0}.mmp-toolpage__intro.has-banner .mmp-toolpage__text{max-width:none;padding:20px 20px 24px;order:2}.mmp-toolpage__banner{position:relative;inset:auto;order:1;aspect-ratio:16/9}.mmp-toolpage__banner img{object-position:70% 50%}.mmp-toolpage__banner::after{background:linear-gradient(0deg,rgba(246,244,239,.9) 0%,rgba(246,244,239,0) 30%)}}

.mmp-btn--link,.mmp-btn--link:hover{text-decoration:none!important}.mmp-btn--link:hover{color:var(--accent-dark)}

/* ==== Tables never widen the page on phones ==== */
@media (max-width:760px){.mmp-article table,.entry-content table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.mmp-article table th,.mmp-article table td{min-width:96px}}
.pv-exp__grid{min-width:min(100%,calc(var(--cols) * 76px))}
.pv-exp__h{overflow-wrap:anywhere;hyphens:auto}
@media (max-width:600px){.pv-exp__h{font-size:11px;padding:6px 2px}.pv-exp__op{padding:8px 14px}}

/* ==== Interactive hundreds chart ==== */
.hc-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.hc-live__bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.hc-live__bar select{padding:9px 12px;border:2px solid var(--line);border-radius:12px;font:700 15px var(--font-body);background:#fff;color:var(--ink);max-width:100%}
.hc-live__sw{display:inline-flex;gap:6px;padding:5px;border-radius:999px;background:#F1F3F8}
.hc-live__sw button{width:28px;height:28px;border-radius:50%;border:2px solid #fff;cursor:pointer;box-shadow:0 1px 3px rgba(27,34,51,.25)}
.hc-live__sw button[aria-checked=true]{outline:3px solid var(--navy);outline-offset:1px}
.hc-live__btn{border:2px solid var(--navy);background:var(--navy);color:#fff;padding:8px 16px;border-radius:999px;font:800 15px var(--font-body);cursor:pointer}
.hc-live__btn--ghost{background:#fff;color:var(--navy)}
.hc-live__msg{margin:10px 0;font-weight:700;color:var(--muted);min-height:1.4em}
.hc-live__grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));border:2px solid var(--ink);border-radius:6px;overflow:hidden;max-width:680px}
.hc-live__c{aspect-ratio:1;border:0;border-right:1px solid #C9D0DC;border-bottom:1px solid #C9D0DC;background:#fff;font:600 clamp(12px,2.2vw,20px)/1 var(--font-display);color:var(--ink);cursor:pointer;padding:0;transition:background-color .15s,transform .1s}
.hc-live__c:nth-child(10n){border-right:0}
.hc-live__c:hover{box-shadow:inset 0 0 0 3px rgba(31,58,104,.35)}
.hc-live__c:active{transform:scale(.94)}
.hc-live__c.is-hidden{background:#FFF4D6;color:#8F5A0C}
.hc-live__c:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}

/* ==== Hub and topic headers with art ==== */
.mmp-topic__intro.has-art{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,36%);gap:clamp(16px,3vw,32px);align-items:center;padding:clamp(20px,3vw,34px);margin-bottom:26px;background:linear-gradient(135deg,#FFF4EE 0%,#F4F1FB 55%,#EEF3FB 100%);border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 50px -40px rgba(27,34,51,.6)}
.mmp-topic__intro.has-art h1{margin-top:0}
.psl-intro-art img{display:block;width:100%;height:auto;max-height:300px;object-fit:contain;border-radius:20px}
.psl-fan{position:relative;height:260px}
.psl-fan__s{position:absolute;top:18px;left:50%;width:44%;max-width:180px;aspect-ratio:0.77;background:#fff;border-radius:8px;box-shadow:0 18px 30px -16px rgba(27,34,51,.55);overflow:hidden;transition:transform .35s var(--ease-out)}
.psl-fan__s img{width:100%;height:100%;object-fit:cover;object-position:top}
.psl-fan__s--0{transform:translateX(-112%) rotate(-9deg);z-index:1}
.psl-fan__s--1{transform:translateX(-50%) translateY(-8px);z-index:3}
.psl-fan__s--2{transform:translateX(12%) rotate(9deg);z-index:2}
.has-art:hover .psl-fan__s--0{transform:translateX(-122%) rotate(-12deg)}
.has-art:hover .psl-fan__s--2{transform:translateX(22%) rotate(12deg)}
@media (max-width:900px){.mmp-topic__intro.has-art{grid-template-columns:1fr}.psl-intro-art{order:-1;max-width:320px;margin:0 auto}.psl-fan{order:-1;height:200px}.psl-fan__s{max-width:130px}}
@media (prefers-reduced-motion:reduce){.psl-fan__s{transition:none}}

/* ==== Grade collections ==== */
.mmp-dir__box--grades{--box:#2E7D5B;--box2:#45A277}
.psl-grade__sum{font-size:1.05rem}
.psl-grade__jump ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:10px 0 26px;padding:0}
.psl-grade__jump li{margin:0}
.mmp-article .psl-grade__jump a{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#F3F5FA;border:1px solid var(--line);color:var(--ink);font-size:14px}
.mmp-article .psl-grade__jump a:hover{background:#FDEBE4;color:var(--accent-dark)}
.psl-grade__jump a span{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 6px;border-radius:999px;background:#fff;color:var(--accent-dark);font-size:12px;font-weight:900}
.psl-grade__topic{margin:0 0 34px;scroll-margin-top:120px}
.psl-grade__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;margin-bottom:12px}
.psl-grade__head h3{margin:0}
.mmp-article .psl-grade__head a{font-size:14px}
.psl-grade__more{margin:12px 0 0;font-weight:700}

/* ==== Interactive multiplication chart ==== */
.mc-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.mc-live__fact{min-height:1.6em;margin:12px 0;font:600 clamp(1.1rem,2.2vw,1.4rem)/1.3 var(--font-display);color:var(--accent-dark)}
.mc-live__grid{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));max-width:720px;border:2px solid var(--ink);border-radius:6px;overflow:hidden}
.mc-live__c{aspect-ratio:1;display:grid;place-items:center;border:0;border-right:1px solid #D5DAE3;border-bottom:1px solid #D5DAE3;background:#fff;font:600 clamp(9px,1.5vw,16px)/1 var(--font-display);color:var(--ink);padding:0;cursor:pointer;transition:background-color .12s}
.mc-live__c.is-head{background:var(--navy);color:#fff;cursor:default}
.mc-live__c.is-head:first-child{background:var(--accent-dark)}
.mc-live__c.is-sq{background:#FFF3C4}
.mc-live__c.is-row,.mc-live__c.is-col{background:#FFE3D6}
.mc-live__c.is-head.is-row,.mc-live__c.is-head.is-col{background:#C8441E}
.mc-live__c.is-on{background:var(--accent-dark);color:#fff}
.mc-live__c.is-hidden{background:#FFF4D6;color:#8F5A0C}
.mc-live__c:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}

/* Callout linking to charts and grade pages */
.psl-callout{margin:18px 0 26px;padding:14px 18px 14px 50px;position:relative;border-radius:16px;background:linear-gradient(135deg,#FFF4EE,#EEF3FB);border:1px solid #F0D9CE;font-weight:600}
.psl-callout::before{content:"";position:absolute;left:16px;top:15px;width:22px;height:22px;border-radius:50%;background:var(--accent-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 17h.01'/%3E%3C/svg%3E") center/14px no-repeat}

.mmp-dir__box--tracing{--box:#7A4FB5;--box2:#9A72CF}

/* ==== Interactive number line ==== */
.nl-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.nl-live__eq{min-height:1.6em;margin:12px 0 4px;font:600 clamp(1.05rem,2.2vw,1.4rem)/1.35 var(--font-display);color:var(--accent-dark)}
.nl-live__svg{display:block;width:100%;height:auto;max-width:980px;touch-action:manipulation}
.nl-live__tick{cursor:pointer;outline:none}
.nl-live__tick:hover text,.nl-live__tick:focus-visible text{fill:var(--accent-dark)}
.nl-live__tick:focus-visible line{stroke:var(--accent-dark);stroke-width:5}
.nl-live__frog{transition:transform .35s var(--ease-out,cubic-bezier(.2,.8,.2,1))}
.nl-live__arc{stroke-dasharray:900;stroke-dashoffset:900;animation:nlDraw .5s ease-out forwards}
@keyframes nlDraw{to{stroke-dashoffset:0}}
.nl-live.is-wrong .nl-live__svg{animation:nlShake .35s}
@keyframes nlShake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.nl-live .nl-live__hop{min-width:3.2em;font-weight:700}
@media (prefers-reduced-motion:reduce){.nl-live__arc{animation:none;stroke-dashoffset:0}.nl-live__frog{transition:none}.nl-live.is-wrong .nl-live__svg{animation:none}}
.mmp-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mmp-row3 .mmp-field input{width:100%}

/* ==== Interactive ten frame ==== */
.tf-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.tf-live__msg{min-height:1.6em;margin:12px 0;font:600 clamp(1.05rem,2.2vw,1.35rem)/1.35 var(--font-display);color:var(--accent-dark)}
.tf-live__board{display:flex;flex-direction:column;gap:14px;max-width:560px;position:relative}
.tf-live__frame{display:grid;grid-template-columns:repeat(5,1fr);border:4px solid var(--ink);border-radius:10px;overflow:hidden;background:#fff}
.tf-live__cell{aspect-ratio:1;border:0;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);background:#fff;padding:0;cursor:pointer;position:relative;transition:background-color .15s}
.tf-live__cell:nth-child(5n){border-right:0}
.tf-live__frame:not(.is-five) .tf-live__cell:nth-child(n+6),.tf-live__frame.is-five .tf-live__cell{border-bottom:0}
.tf-live__cell:hover{background:#FFF4EC}
.tf-live__cell:focus-visible{outline:3px solid var(--focus);outline-offset:-4px}
.tf-live__cell::after{content:"";position:absolute;inset:16%;border-radius:50%;transform:scale(0);transition:transform .22s cubic-bezier(.3,1.6,.5,1)}
.tf-live__cell.has-red::after{background:radial-gradient(circle at 35% 30%,#FF8A70,#E8553B 55%,#B83A22);transform:scale(1)}
.tf-live__cell.has-yellow::after{background:radial-gradient(circle at 35% 30%,#FFE28A,#F2B61F 55%,#C28D0A);transform:scale(1)}
.tf-live__board.is-covered .tf-live__frame{background:var(--navy)}
.tf-live__board.is-covered .tf-live__cell{background:var(--navy);border-color:#34507F}
.tf-live__board.is-covered .tf-live__cell::after{transform:scale(0)}
.tf-live__picks{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.tf-live__pick{min-width:48px;min-height:48px;border-radius:14px;border:2px solid var(--line);background:#fff;font:700 1.2rem/1 var(--font-display);color:var(--ink);cursor:pointer}
.tf-live__pick:hover,.tf-live__pick:focus-visible{border-color:var(--accent-dark);color:var(--accent-dark)}
.tf-live__swatch[data-c=red]::before,.tf-live__swatch[data-c=yellow]::before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:8px;vertical-align:-2px;background:#E8553B}
.tf-live__swatch[data-c=yellow]::before{background:#F2B61F}
@media (prefers-reduced-motion:reduce){.tf-live__cell::after{transition:none}}

/* ==== Interactive fraction wall ==== */
.fw-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.fw-live__msg{min-height:3em;margin:12px 0;font:600 clamp(1rem,2vw,1.25rem)/1.4 var(--font-display);color:var(--accent-dark)}
.fw-live__wall{position:relative;display:flex;flex-direction:column;border:3px solid var(--ink);border-radius:8px;overflow:hidden;background:#fff}
.fw-live__row{display:flex}
.fw-live__piece{flex:1 1 0;min-width:0;height:clamp(34px,5vw,48px);border:0;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);background:var(--c);padding:0;cursor:pointer;font:600 clamp(10px,1.5vw,15px)/1 var(--font-display);color:var(--ink);transition:filter .12s,background-color .12s}
.fw-live__piece:last-child{border-right:0}
.fw-live__row:last-of-type .fw-live__piece{border-bottom:0}
.fw-live__piece sup,.fw-live__piece sub{font-size:.85em;line-height:0}
.fw-live__piece.is-in{filter:brightness(.93)}
.fw-live__piece.is-eq{box-shadow:inset -4px 0 0 var(--accent-dark)}
.fw-live__piece.is-shaded{background:var(--navy);color:#fff}
.fw-live__piece:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.fw-live__line{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--accent-dark);pointer-events:none;transform:translateX(-1px)}
@media (max-width:520px){.fw-live__piece sup,.fw-live__piece sub{font-size:.7em}}

/* ==== Interactive clock ==== */
.ck-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55);transition:box-shadow .3s}
.ck-live.is-right{box-shadow:0 0 0 4px #3FA34D,0 18px 40px -30px rgba(27,34,51,.55)}
.ck-live__wrap{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:clamp(16px,3vw,36px);align-items:center;margin-top:14px}
.ck-live__svg{width:100%;height:auto;touch-action:none;cursor:grab;user-select:none;filter:drop-shadow(0 10px 18px rgba(27,34,51,.14))}
.ck-live__svg:active{cursor:grabbing}
.ck-live__hand{transition:transform .08s linear}
.ck-live__digital{margin:0;font:700 clamp(2.6rem,7vw,4.2rem)/1 var(--font-display);color:var(--navy);letter-spacing:.02em}
.ck-live__words{margin:.35em 0 0;font:600 clamp(1.1rem,2.4vw,1.45rem)/1.3 var(--font-display);color:var(--accent-dark)}
.ck-live__task{min-height:1.4em;margin:.9em 0 0;font-weight:700;color:var(--ink)}
@media (max-width:640px){.ck-live__wrap{grid-template-columns:1fr;justify-items:center;text-align:center}.ck-live__svg{max-width:300px}}

/* ==== Virtual base ten blocks ==== */
.b10-live{--u:11px;margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.b10-live__read{margin:12px 0 14px}
.b10-live__num{margin:0;font:700 clamp(2.4rem,6vw,3.6rem)/1 var(--font-display);color:var(--navy)}
.b10-live__exp{margin:.4em 0 0;font:600 clamp(1rem,2vw,1.2rem)/1.4 var(--font-display);color:var(--accent-dark)}
.b10-live__task{min-height:1.4em;margin:.6em 0 0;font-weight:700}
.b10-live__mat{display:grid;grid-template-columns:1.6fr 1.2fr 1fr;gap:12px}
.b10-live__col{display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:14px;overflow:hidden;background:#FBFAF7}
.b10-live__head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font:700 1.05rem/1 var(--font-display);color:#fff}
.b10-live__col--h .b10-live__head{background:#2E7D4F}.b10-live__col--t .b10-live__head{background:#2B5FA8}.b10-live__col--o .b10-live__head{background:#B8740C}
.b10-live__count{min-width:1.8em;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.22);text-align:center}
.b10-live__area{flex:1;display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:calc(var(--u)*12 + 20px);padding:10px}
.b10-live__b{display:block;border-radius:2px;box-shadow:2px 2px 0 rgba(0,0,0,.28);animation:b10In .22s ease-out}
.b10-live__b--h{width:calc(var(--u)*10);height:calc(var(--u)*10);background-color:#58B37A;background-image:linear-gradient(#2E7D4F 1px,transparent 1px),linear-gradient(90deg,#2E7D4F 1px,transparent 1px);background-size:var(--u) var(--u);border:1px solid #2E7D4F}
.b10-live__b--t{width:var(--u);height:calc(var(--u)*10);background-color:#4C8FE0;background-image:linear-gradient(#2B5FA8 1px,transparent 1px);background-size:var(--u) var(--u);border:1px solid #2B5FA8}
.b10-live__b--o{width:var(--u);height:var(--u);background:#F5B042;border:1px solid #C27F0E}
.b10-live__area--o{display:grid;grid-template-columns:repeat(5,var(--u));grid-auto-rows:var(--u);gap:6px}
.b10-live__btns{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}
.b10-live__pm{flex:1;min-height:44px;border-radius:12px;border:2px solid var(--line);background:#fff;font:700 1.4rem/1 var(--font-display);color:var(--ink);cursor:pointer}
.b10-live__pm:hover,.b10-live__pm:focus-visible{border-color:var(--accent-dark);color:var(--accent-dark)}
.b10-live .hc-live__btn:disabled{opacity:.45;cursor:not-allowed}
@keyframes b10In{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@media (max-width:760px){.b10-live{--u:8px}.b10-live__mat{grid-template-columns:1fr}.b10-live__area{min-height:0}}
@media (prefers-reduced-motion:reduce){.b10-live__b{animation:none}}

/* ==== Interactive coordinate plane ==== */
.cp-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.cp-live__msg{min-height:2.8em;margin:12px 0;font:600 clamp(1rem,2vw,1.25rem)/1.4 var(--font-display);color:var(--accent-dark)}
.cp-live__svg{display:block;width:100%;max-width:560px;height:auto;cursor:crosshair;touch-action:manipulation;border-radius:12px;box-shadow:0 10px 24px -18px rgba(27,34,51,.6)}
.cp-live__pt{animation:cpPop .25s cubic-bezier(.3,1.6,.5,1)}
.cp-live__score{margin-left:auto;align-self:center;font:700 1rem/1 var(--font-display);color:var(--navy)}
@keyframes cpPop{from{r:0}to{}}
@media (prefers-reduced-motion:reduce){.cp-live__pt{animation:none}}

/* ==== Spelling words box + listen-and-spell game ==== */
.sp-words{width:100%;min-height:120px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font:600 1rem/1.5 var(--font-body);resize:vertical}
.sp-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.sp-live__score{margin-left:auto;align-self:center;font:700 1rem/1 var(--font-display);color:var(--navy)}
.sp-live__card{margin-top:14px;padding:22px;border-radius:18px;background:#fff;border:2px dashed #E7B96A;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.sp-live__count{margin:0;font-weight:700;color:var(--muted)}
.sp-live__peek{min-height:1.6em;margin:0;font:700 2rem/1 var(--font-display);color:var(--navy);letter-spacing:.04em}
.sp-live__row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;width:100%}
.sp-live__input{flex:1 1 220px;min-height:52px;padding:8px 14px;border:2px solid var(--line);border-radius:14px;font:700 1.6rem/1 var(--font-display);letter-spacing:.06em;color:var(--ink)}
.sp-live__input:focus{outline:none;border-color:var(--accent-dark)}
.sp-live__tiles{display:flex;flex-wrap:wrap;gap:8px}
.sp-live__tile{min-width:48px;min-height:52px;border-radius:12px;border:0;background:#4C8FE0;box-shadow:0 4px 0 #2B5FA8;color:#fff;font:700 1.5rem/1 var(--font-display);cursor:pointer;transition:transform .1s}
.sp-live__tile:active{transform:translateY(3px);box-shadow:0 1px 0 #2B5FA8}
.sp-live__tile:disabled{opacity:.3;cursor:default}
.sp-live__tile--undo{background:#9AA3B5;box-shadow:0 4px 0 #6F7890}
.sp-live__fb{width:100%}
.sp-live__ok{margin:0;font:700 1.25rem/1.3 var(--font-display);color:#2E7D4F}
.sp-live__no{margin:0;font:700 1.1rem/1.3 var(--font-display);color:var(--accent-dark)}
.sp-live__letters{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.sp-live__l{display:grid;place-items:center;min-width:38px;height:46px;border-radius:8px;font:700 1.5rem/1 var(--font-display)}
.sp-live__l.is-ok{background:#E3F4DA;color:#2E7D4F}.sp-live__l.is-bad{background:#FDE2DB;color:var(--accent-dark)}

/* ==== Sight word flash card game ==== */
.sw-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.sw-live__bar{height:12px;margin:14px 0;border-radius:999px;background:#E6EAF1;overflow:hidden}
.sw-live__fill{display:block;height:100%;width:0;background:linear-gradient(90deg,#3FA34D,#8CCF6A);transition:width .35s var(--ease-out,ease)}
.sw-live__card{display:grid;place-items:center;width:100%;min-height:clamp(170px,30vw,260px);border:0;border-radius:24px;background:linear-gradient(135deg,#FFF6E8,#FDE2DB);box-shadow:0 18px 30px -22px rgba(27,34,51,.6),inset 0 0 0 3px #fff;font:700 clamp(3rem,11vw,6.5rem)/1 var(--font-display);color:var(--ink);cursor:pointer}
.sw-live__card.is-flip{animation:swFlip .35s ease-out}
.sw-live__card.is-done{font-size:clamp(2rem,6vw,3.4rem);background:linear-gradient(135deg,#E3F4DA,#D8F0EC)}
.sw-live__btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.sw-live__btns .hc-live__btn{min-height:54px;font-size:1.1rem}
.sw-live .sw-live__yes{background:#3FA34D;border-color:#3FA34D;color:#fff}
.sw-live__stat{margin:12px 0 0;font-weight:700;color:var(--muted)}
@keyframes swFlip{from{transform:rotateX(70deg);opacity:.2}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.sw-live__card.is-flip{animation:none}}

/* ==== Playable sudoku ==== */
.sd-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55);transition:box-shadow .3s}
.sd-live.is-won{box-shadow:0 0 0 4px #3FA34D,0 18px 40px -30px rgba(27,34,51,.55)}
.sd-live__time{margin-left:auto;align-self:center;font:700 1.1rem/1 var(--font-display);color:var(--navy);font-variant-numeric:tabular-nums}
.sd-live__msg{min-height:1.5em;margin:12px 0;font-weight:700;color:var(--accent-dark)}
.sd-live__grid{display:grid;grid-template-columns:repeat(var(--n),1fr);width:100%;max-width:520px;border:3px solid var(--ink);border-radius:8px;overflow:hidden;background:#fff}
.sd-live__c{aspect-ratio:1;border:0;border-right:1px solid #C9D1DE;border-bottom:1px solid #C9D1DE;background:#fff;padding:0;font:600 clamp(1rem,4.2vw,1.9rem)/1 var(--font-display);color:var(--accent-dark);cursor:pointer}
.sd-live__grid[data-n="9"] .sd-live__c{font-size:clamp(.9rem,3.4vw,1.5rem)}
.sd-live__c.br{border-right:3px solid var(--ink)}.sd-live__c.bb{border-bottom:3px solid var(--ink)}
.sd-live__c.is-given{color:var(--ink);font-weight:700;background:#F2F5FA;cursor:default}
.sd-live__c.is-same{background:#FFF3C4}
.sd-live__c.is-sel{background:#FFE3D6;box-shadow:inset 0 0 0 3px var(--accent-dark)}
.sd-live__c.is-bad{color:#D0271D;background:#FDE2DB}
.sd-live__c:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.sd-live__pad{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;max-width:520px}
.sd-live__num{flex:1 1 44px;min-height:50px;border-radius:12px;border:2px solid var(--line);background:#fff;font:700 1.35rem/1 var(--font-display);color:var(--ink);cursor:pointer}
.sd-live__num:hover,.sd-live__num:focus-visible{border-color:var(--accent-dark);color:var(--accent-dark)}
.sd-live__num--x{color:var(--muted)}

.mmp-dir__box--reading{--box:#7A4FB5;--box2:#9A72CF}
.mmp-dir__box--puzzles{--box:#C0551E;--box2:#E07A3F}

/* ==== Phonics word family chips + word builder game ==== */
.ph-chips{display:grid;gap:8px}
.ph-chips__group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border-radius:14px;background:color-mix(in srgb,var(--ph) 9%,#fff);border:1px solid color-mix(in srgb,var(--ph) 25%,#fff)}
.ph-chips__all{min-height:34px;padding:4px 12px;border:0;border-radius:999px;background:var(--ph);color:#fff;font:800 .85rem/1 var(--font-body);cursor:pointer}
.ph-chip{position:relative;display:inline-flex}
.ph-chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.ph-chip span{display:inline-grid;place-items:center;min-width:52px;min-height:34px;padding:0 10px;border-radius:10px;border:2px solid color-mix(in srgb,var(--ph) 40%,#fff);background:#fff;font:700 1rem/1 var(--font-display);color:var(--ink);transition:background .15s,color .15s}
.ph-chip input:checked+span{background:var(--ph);border-color:var(--ph);color:#fff}
.ph-chip input:focus-visible+span{outline:3px solid var(--navy);outline-offset:2px}
.ph-live{--ph:#E8553B;margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.ph-live__bl{display:inline-flex;align-items:center;gap:6px;font-weight:700}
.ph-live__word{display:flex;justify-content:center;align-items:baseline;gap:4px;margin:16px 0 6px;padding:18px;border-radius:24px;background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--ph) 14%,#fff));box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--ph) 30%,#fff);font:700 clamp(3.2rem,12vw,6.5rem)/1 var(--font-display)}
.ph-live__on{min-width:1.1em;padding:0 .12em;border-radius:16px;border:3px dashed color-mix(in srgb,var(--ph) 55%,#fff);color:var(--ink);text-align:center}
.ph-live__rime{color:var(--ph)}
.ph-live__word.is-real .ph-live__on{border-style:solid;border-color:#3FA34D;background:#E3F4DA}
.ph-live__word.is-silly .ph-live__on{border-style:solid;border-color:#E0831C;background:#FDEBD3}
.ph-live__word.is-pop{animation:phPop .3s ease-out}
.ph-live__word.is-done{box-shadow:inset 0 0 0 4px #3FA34D}
.ph-live__fb{margin:6px 0 12px;text-align:center;font:700 1.2rem/1.3 var(--font-display);color:var(--navy)}
.ph-live__tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.ph-live__tile{min-width:56px;min-height:56px;padding:0 10px;border:0;border-radius:14px;background:var(--ph);box-shadow:0 4px 0 rgba(0,0,0,.25);color:#fff;font:700 1.6rem/1 var(--font-display);cursor:pointer;transition:transform .1s}
.ph-live__tile:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.25)}
.ph-live__tile.is-found{background:#3FA34D}
.ph-live__tile.is-silly{background:#9AA3B5}
.ph-live__stat{margin:14px 0 6px;text-align:center;font-weight:700;color:var(--muted)}
.ph-live__got{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.ph-live__chip{padding:6px 12px;border-radius:999px;background:#E3F4DA;color:#2E7D4F;font:700 1.05rem/1 var(--font-display)}
@keyframes phPop{from{transform:scale(.94)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.ph-live__word.is-pop{animation:none}}

/* ==== Playable maze ==== */
.mz-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.mz-live__time{margin-left:auto;font:700 1.2rem/1 var(--font-display);color:var(--navy);font-variant-numeric:tabular-nums}
.mz-live__wrap{max-width:560px;margin:14px auto 0;padding:10px;border-radius:18px;background:#FFFBF3;box-shadow:inset 0 0 0 2px #F1E4C8}
.mz-live__board{display:block;width:100%;height:auto;touch-action:none;border-radius:8px}
.mz-live__board:focus{outline:3px solid var(--navy);outline-offset:4px}
.mz-live__board.is-bump{animation:mzBump .18s linear}
.mz-live__msg{margin:12px 0 8px;text-align:center;font:700 1.05rem/1.4 var(--font-display);color:var(--navy)}
.mz-live.is-win .mz-live__wrap{box-shadow:inset 0 0 0 4px #3FA34D}
.mz-live__pads{display:grid;grid-template-columns:repeat(3,58px);grid-template-areas:". up ." "left down right";gap:6px;justify-content:center}
.mz-live__pad{min-height:52px;border:0;border-radius:14px;background:#2F7DD1;box-shadow:0 4px 0 #1D5A9E;color:#fff;font-size:1.3rem;cursor:pointer}
.mz-live__pad:active{transform:translateY(3px);box-shadow:0 1px 0 #1D5A9E}
.mz-live__pad--up{grid-area:up}.mz-live__pad--left{grid-area:left}.mz-live__pad--down{grid-area:down}.mz-live__pad--right{grid-area:right}
@keyframes mzBump{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@media (prefers-reduced-motion:reduce){.mz-live__board.is-bump{animation:none}}

/* ==== Note reading game (staff paper maker) ==== */
.ms-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.ms-live__score{margin-left:auto;font:700 1.2rem/1 var(--font-display);color:var(--navy)}
.ms-live__wrap{max-width:640px;margin:14px auto 0;padding:8px;border-radius:18px;background:linear-gradient(135deg,#FFFBF3,#F3F7FD);box-shadow:inset 0 0 0 2px #E6EAF1}
.ms-live__staff{display:block;width:100%;height:auto;cursor:pointer;font-family:var(--font-body)}
.ms-live__msg{margin:12px 0 10px;text-align:center;font:700 1.1rem/1.4 var(--font-display);color:var(--navy);min-height:1.4em}
.ms-live__keys{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:520px;margin:0 auto}
.ms-live__key{min-height:64px;border:2px solid #C8CFDB;border-radius:0 0 12px 12px;background:#fff;box-shadow:0 4px 0 #C8CFDB;font:700 1.4rem/1 var(--font-display);color:var(--ink);cursor:pointer}
.ms-live__key:active{transform:translateY(3px);box-shadow:0 1px 0 #C8CFDB}
.ms-live__key.is-wrong{background:#FDE2DB;border-color:#E8553B}

/* ==== Grammar: tap the nouns game ==== */
.gr-live{--gr:#2F7DD1;margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.gr-live__score{margin-left:auto;font:700 1.2rem/1 var(--font-display);color:var(--navy)}
.gr-live__hint{margin:12px 0 0;color:var(--muted);font-weight:700}
.gr-live__sent{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px;padding:18px;border-radius:18px;background:#FFFBF3;box-shadow:inset 0 0 0 2px #F1E4C8}
.gr-live__w{min-height:48px;padding:6px 14px;border:2px solid transparent;border-radius:12px;background:#fff;box-shadow:0 2px 0 #E6EAF1;font:700 clamp(1.2rem,3.4vw,1.6rem)/1 var(--font-display);color:var(--ink);cursor:pointer}
.gr-live__w[aria-pressed=true]{border-color:var(--gr);background:color-mix(in srgb,var(--gr) 14%,#fff)}
.gr-live__w.is-right{border-color:#3FA34D;background:#E3F4DA}
.gr-live__w.is-missed{border-color:#E0831C;border-style:dashed;background:#FDEBD3}
.gr-live__w.is-wrong{border-color:#E8553B;background:#FDE2DB;text-decoration:line-through}
.gr-live__fb{min-height:1.4em;margin:8px 0;font:700 1.15rem/1.4 var(--font-display);color:var(--navy)}
.gr-live__btns{display:flex;flex-wrap:wrap;gap:10px}
.gr-live__btns .hc-live__btn{min-height:50px;min-width:150px;font-size:1.05rem}

/* ==== Story spark spinner ==== */
.st-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.st-live__reels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.st-live__reel{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:18px;background:color-mix(in srgb,var(--st) 10%,#fff);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--st) 30%,#fff)}
.st-live__lab{font:800 .8rem/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--st)}
.st-live__val{min-height:3.2em;font:700 clamp(1.05rem,2.4vw,1.35rem)/1.25 var(--font-display);color:var(--ink)}
.st-live.is-spin .st-live__val{filter:blur(.6px);opacity:.75}
.st-live__lock{align-self:flex-start;min-height:34px;padding:4px 12px;border:2px solid var(--st);border-radius:999px;background:#fff;color:var(--st);font:800 .85rem/1 var(--font-body);cursor:pointer}
.st-live__lock[aria-pressed=true]{background:var(--st);color:#fff}
.st-live__story{margin:16px 0 12px;padding:16px 18px;border-radius:16px;background:#FFF6E0;box-shadow:inset 0 0 0 2px #F2C46B;font:700 clamp(1.1rem,2.6vw,1.4rem)/1.4 var(--font-display);color:var(--navy)}
.st-live__btns{display:flex;flex-wrap:wrap;gap:10px}
.st-live__btns .hc-live__btn{min-height:52px;font-size:1.05rem;text-decoration:none;display:inline-flex;align-items:center}
@media (max-width:640px){.st-live__reels{grid-template-columns:1fr}.st-live__val{min-height:0}}

/* ==== States and capitals quiz game ==== */
.us-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.us-live__score{margin-left:auto;font:700 1.1rem/1 var(--font-display);color:var(--navy)}
.us-live__q{margin:16px 0 12px;font:700 clamp(1.3rem,3.6vw,1.9rem)/1.3 var(--font-display);color:var(--ink)}
.us-live__opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.us-live__opt{min-height:60px;padding:8px 14px;border:2px solid #C8CFDB;border-radius:14px;background:#fff;box-shadow:0 4px 0 #E1E6EE;font:700 1.15rem/1.2 var(--font-display);color:var(--ink);cursor:pointer;text-align:left}
.us-live__opt:hover{border-color:#2F7DD1}
.us-live__opt.is-right{border-color:#3FA34D;background:#E3F4DA}
.us-live__opt.is-wrong{border-color:#E8553B;background:#FDE2DB}
.us-live__fb{min-height:1.4em;margin:12px 0 0;font:700 1.1rem/1.4 var(--font-display);color:var(--navy)}
@media (max-width:520px){.us-live__opts{grid-template-columns:1fr}}

/* ==== Interactive periodic table ==== */
.pt-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.pt-live__score{margin-left:auto;font:700 1.1rem/1 var(--font-display);color:var(--navy)}
.pt-live__info{display:flex;align-items:center;gap:16px;min-height:92px;margin:14px 0}
.pt-live__big{display:grid;place-items:center;flex:0 0 84px;height:84px;border-radius:14px;background:var(--c);box-shadow:inset 0 0 0 2px rgba(255,255,255,.7);position:relative}
.pt-live__big small{position:absolute;top:6px;left:8px;font:700 .8rem/1 var(--font-body)}
.pt-live__big b{font:700 2.2rem/1 var(--font-display);color:var(--ink)}
.pt-live__txt{display:flex;flex-direction:column;gap:4px}
.pt-live__txt strong{font:700 clamp(1.3rem,3vw,1.7rem)/1.2 var(--font-display);color:var(--ink)}
.pt-live__txt span{color:var(--muted);font-weight:700}
.pt-live__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
.pt-live__grid{display:grid;grid-template-columns:repeat(18,minmax(34px,1fr));grid-template-rows:repeat(7,auto) 10px repeat(2,auto);gap:3px;min-width:680px}
.pt-live__el{position:relative;aspect-ratio:1/1.1;border:0;border-radius:6px;background:var(--c);cursor:pointer;padding:0;display:grid;place-items:center;transition:transform .12s}
.pt-live__el small{position:absolute;top:2px;left:4px;font:700 .55rem/1 var(--font-body);color:var(--ink)}
.pt-live__el b{font:700 clamp(.8rem,1.6vw,1.1rem)/1 var(--font-display);color:var(--ink)}
.pt-live__el:hover,.pt-live__el.is-on{transform:scale(1.12);box-shadow:0 0 0 3px var(--navy);z-index:1}
.pt-live__el.is-right{box-shadow:0 0 0 4px #3FA34D;transform:scale(1.15)}
.pt-live__el.is-wrong{box-shadow:0 0 0 4px #E8553B}

.mmp-dir__box--science{--box:#12887A;--box2:#2FA896}
.psl-panel__more--alt{display:inline-block;margin:6px 0 0}

/* ==== Holiday word unscramble game ==== */
.hol-live{--hol:#E0701C;--hol2:#FDE6D2;margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.hol-live__score{margin-left:auto;font:700 1.2rem/1 var(--font-display);color:var(--navy)}
.hol-live__slots{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px 0 14px;padding:18px;border-radius:18px;background:var(--hol2)}
.hol-live__slot{display:grid;place-items:center;width:clamp(36px,8vw,54px);height:clamp(44px,9vw,62px);border-radius:12px;border:3px dashed var(--hol);background:#fff;font:700 clamp(1.4rem,4vw,2rem)/1 var(--font-display);color:var(--ink)}
.hol-live__slot.is-on{border-style:solid}
.hol-live__slots.is-win .hol-live__slot{background:#E3F4DA;border-color:#3FA34D;animation:holPop .4s ease-out}
.hol-live__tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.hol-live__tile{min-width:52px;min-height:56px;border:0;border-radius:14px;background:var(--hol);box-shadow:0 4px 0 rgba(0,0,0,.25);color:#fff;font:700 1.6rem/1 var(--font-display);cursor:pointer}
.hol-live__tile:disabled{opacity:.25;cursor:default}
.hol-live__tile:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.25)}
.hol-live__fb{margin:14px 0 0;text-align:center;font:700 1.1rem/1.4 var(--font-display);color:var(--navy)}
@keyframes holPop{50%{transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.hol-live__slots.is-win .hol-live__slot{animation:none}}

/* ==== Reading comprehension: read and answer online ==== */
.rc-live{--rc:#2F7DD1;--rc2:#DCE8FA;margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.rc-live__cols{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;margin-top:14px}
.rc-live__text{padding:18px 20px;border-radius:18px;background:#FFFBF3;box-shadow:inset 0 0 0 2px #F1E4C8;max-height:620px;overflow:auto}
.rc-live__text h3{margin:0 0 4px;font:700 1.4rem/1.25 var(--font-display);color:var(--ink)}
.rc-live__meta{margin:0 0 12px;font-weight:800;color:var(--rc)}
.rc-live__text p{font-size:1.08rem;line-height:1.65}
.rc-live__q{margin:0 0 14px;padding:12px 14px;border:0;border-radius:14px;background:var(--rc2)}
.rc-live__q legend{padding:0;font:700 1.05rem/1.35 var(--font-display);color:var(--ink);float:left;width:100%;margin-bottom:8px}
.rc-live__opt{display:flex;align-items:center;gap:10px;min-height:44px;margin:4px 0;padding:6px 10px;border-radius:10px;background:#fff;cursor:pointer;font-weight:600;clear:both}
.rc-live__opt input{width:20px;height:20px;accent-color:var(--rc)}
.rc-live__opt.is-right{background:#E3F4DA;box-shadow:inset 0 0 0 2px #3FA34D}
.rc-live__opt.is-wrong{background:#FDE2DB;box-shadow:inset 0 0 0 2px #E8553B}
.rc-live__result{margin:12px 0 0;font:700 1.05rem/1.45 var(--font-display);color:var(--navy)}
@media (max-width:820px){.rc-live__cols{grid-template-columns:1fr}.rc-live__text{max-height:none}}

/* ==== Pixel art: mirror it game ==== */
.px-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.px-live__pal{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.px-live__sw{width:44px;height:44px;border-radius:12px;border:3px solid #fff;box-shadow:0 0 0 1px #C8CFDB;cursor:pointer;font-size:1.1rem;color:var(--ink)}
.px-live__sw.is-on{box-shadow:0 0 0 3px var(--navy);transform:scale(1.08)}
.px-live__board{display:grid;gap:0;max-width:520px;margin:0 auto;border:2px solid var(--ink);background:#fff;touch-action:manipulation}
.px-live__c{aspect-ratio:1;border:0;border-right:1px solid #C9D3E2;border-bottom:1px solid #C9D3E2;background:#fff;padding:0;cursor:pointer}
.px-live__c.is-given{cursor:default;opacity:.95}
.px-live__c.is-axis{border-right:3px dashed #E8553B}
.px-live__c.is-bad{box-shadow:inset 0 0 0 3px #E8553B}
.px-live__msg{margin:12px 0 0;text-align:center;font:700 1.1rem/1.4 var(--font-display);color:var(--navy)}

/* ==== Science: tap them in order ==== */
.sc-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.sc-live__track{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;padding:12px;border-radius:18px;background:linear-gradient(90deg,#FFF3C4,#DCE8FA 30%,#E6E0F8)}
.sc-live__slot{display:grid;place-items:center;flex:1 1 64px;max-width:110px;aspect-ratio:1;border-radius:14px;border:2px dashed #9AA3B5;background:rgba(255,255,255,.7);font:700 1.2rem/1 var(--font-display);color:var(--muted)}
.sc-live__slot.is-on{border-style:solid;border-color:#3FA34D;background:#fff}
.sc-live__slot svg{width:90%;height:90%}
.sc-live__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.sc-live__card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:2px solid #C8CFDB;border-radius:14px;background:#fff;box-shadow:0 4px 0 #E1E6EE;cursor:pointer;font:700 .95rem/1.2 var(--font-display);color:var(--ink)}
.sc-live__card svg{width:80px;height:80px}
.sc-live__card.is-used{opacity:.3;cursor:default}
.sc-live__card.is-wrong{animation:scShake .3s}
.sc-live__msg{margin:12px 0 0;text-align:center;font:700 1.1rem/1.4 var(--font-display);color:var(--navy)}
@keyframes scShake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.sc-live__card.is-wrong{animation:none}}

/* ==== Online bingo caller ==== */
.bg-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.bg-live__top{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin:16px 0}
.bg-live__ball{--bg:#2F7DD1;display:grid;place-items:center;width:clamp(120px,24vw,170px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 18%,var(--bg) 19% 100%);box-shadow:0 14px 30px -14px rgba(27,34,51,.6);font:700 clamp(1.8rem,5vw,2.6rem)/1 var(--font-display);color:var(--ink);text-align:center}
.bg-live__ball.is-pop{animation:bgPop .45s ease-out}
.bg-live__call{min-height:56px;font-size:1.15rem;margin:0 10px 10px 0}
.bg-live__last{margin:4px 0 0;font-weight:700;color:var(--muted)}
.bg-live__board{display:grid;gap:4px}
.bg-live__n{display:grid;place-items:center;aspect-ratio:1;border-radius:8px;background:#F2F4F8;font:700 clamp(.7rem,1.6vw,1rem)/1 var(--font-display);color:#9AA3B5}
.bg-live__n.is-on{background:#FFF3C4;color:var(--ink);box-shadow:inset 0 0 0 2px #E0A800}
@keyframes bgPop{from{transform:scale(.6) rotate(-20deg)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.bg-live__ball.is-pop{animation:none}}

.psl-grade-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 24px}.psl-grade-nav a,.psl-grade-nav span{padding:6px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:700;text-decoration:none}.psl-grade-nav span{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ==== Alphabet maker: letter picker + pop the letter game ==== */
.al-letters{text-transform:uppercase;letter-spacing:.2em;font-weight:800}
.al-pick{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:4px;margin:-4px 0 14px}
.al-pick__b{min-height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;font:700 1rem/1 var(--font-display);color:var(--ink);cursor:pointer}
.al-pick__b:hover{background:#FFF3C4}
.al-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.al-live__prompt{margin:14px 0;text-align:center;font:700 clamp(1.2rem,3.4vw,1.7rem)/1.3 var(--font-display);color:var(--navy)}
.al-live__field{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:560px;margin:0 auto;padding:16px;border-radius:20px;background:linear-gradient(180deg,#DCEFFA,#F3F9FE)}
.al-live__bubble{--c:#2F7DD1;aspect-ratio:1;border:0;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0 12%,color-mix(in srgb,var(--c) 35%,#fff) 13% 100%);box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--c) 60%,#fff);font:700 clamp(1.5rem,5vw,2.3rem)/1 var(--font-display);color:var(--ink);cursor:pointer;animation:alFloat 3s ease-in-out infinite}
.al-live__bubble.is-pop{animation:alPop .35s forwards;cursor:default}
.al-live__bubble.is-no{animation:alNo .3s}
@keyframes alFloat{50%{transform:translateY(-5px)}}
@keyframes alPop{to{transform:scale(1.5);opacity:0}}
@keyframes alNo{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.al-live__bubble{animation:none!important}.al-live__bubble.is-pop{opacity:.15}}
@media (max-width:520px){.al-pick{grid-template-columns:repeat(9,minmax(0,1fr))}.al-live__field{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ==== Dot to dot maker: online connect the dots ==== */
.dd-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.dd-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink)}
.dd-live__wrap{max-width:560px;margin:14px auto 0;border-radius:20px;background:linear-gradient(180deg,#FFF8E6,#FFFDF7);border:1px solid #F1E3BF}
.dd-live__svg{display:block;width:100%;height:auto;touch-action:manipulation}
.dd-live__dot{cursor:pointer;outline:none}
.dd-live__dot circle:nth-child(2){fill:#1B2233;transition:fill .15s}
.dd-live__dot text{font-family:var(--font-body);font-weight:800;fill:#1B2233;pointer-events:none}
.dd-live__dot:hover circle:nth-child(2),.dd-live__dot:focus-visible circle:nth-child(2){fill:#E0831C}
.dd-live__dot.is-done circle:nth-child(2){fill:#3FA34D}
.dd-live__dot.is-done text{fill:#2E7D32}
.dd-live__dot.is-no circle:nth-child(2){fill:#E8553B}
.dd-live__msg{margin:12px 0 0;text-align:center;font:700 clamp(1.05rem,3vw,1.35rem)/1.35 var(--font-display);color:var(--navy);min-height:1.4em}

/* ==== Color by number maker: online paint by number ==== */
.cbn-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.cbn-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink)}
.cbn-live__pal{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0 0}
.cbn-live__sw{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:6px 14px 6px 8px;border:2px solid var(--line);border-radius:999px;background:#fff;font:800 15px var(--font-body);color:var(--ink);cursor:pointer}
.cbn-live__sw[aria-pressed="true"]{border-color:var(--navy);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 45%,#fff)}
.cbn-live__chip{width:24px;height:24px;border-radius:50%;background:var(--c);border:1.5px solid rgba(27,34,51,.5)}
.cbn-live__wrap{max-width:560px;margin:14px auto 0}
.cbn-live__svg{display:block;width:100%;height:auto;touch-action:manipulation}
.cbn-live__r{cursor:pointer;outline:none}
.cbn-live__r text{font-family:var(--font-body);font-weight:800;fill:#1B2233;pointer-events:none}
.cbn-live__r:hover>:first-child,.cbn-live__r:focus-visible>:first-child{stroke-width:.8}
.cbn-live__r>:first-child{transition:fill .25s}
.cbn-live__r.is-done{cursor:default}
.cbn-live__r.is-done text{opacity:.35}
.cbn-live__r.is-no{animation:cbnNo .35s}
@keyframes cbnNo{25%{transform:translateX(-1px)}75%{transform:translateX(1px)}}
@media (prefers-reduced-motion:reduce){.cbn-live__r.is-no{animation:none}}
.cbn-live__msg{margin:12px 0 0;text-align:center;font:700 clamp(1.05rem,3vw,1.35rem)/1.35 var(--font-display);color:var(--navy);min-height:1.4em}

/* ==== Middle school math maker: solve it practice ==== */
.pa-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.pa-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink);max-width:100%}
.pa-live__score{margin-left:auto;font-weight:800;color:var(--muted);white-space:pre}
.pa-live__q{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;min-height:110px;margin:16px 0 12px;padding:18px;border-radius:18px;background:linear-gradient(180deg,#EEF4FF,#F8FAFF);font:700 clamp(1.4rem,4.6vw,2.2rem)/1.35 var(--font-display);color:var(--navy);text-align:center;white-space:pre-wrap}
.pa-live__frac{display:inline-flex;flex-direction:column;align-items:center;margin:0 4px;line-height:1.1}
.pa-live__frac span:first-child{border-bottom:3px solid currentColor;padding:0 6px}
.pa-live__form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.pa-live__in{flex:1 1 180px;max-width:260px;min-height:48px;border:2px solid var(--line);border-radius:12px;padding:0 14px;font:800 1.25rem var(--font-body);color:var(--ink);text-align:center}
.pa-live__in:focus{outline:none;border-color:var(--navy)}
.pa-live__msg{margin:12px 0 0;text-align:center;font-weight:700;color:var(--muted);min-height:1.4em}

/* ==== Word skills maker: word quiz ==== */
.ws-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.ws-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink);max-width:100%}
.ws-live .pa-live__score{margin-left:auto;font-weight:800;color:var(--muted);white-space:pre}
.ws-live__q{margin:16px 0 12px;padding:22px 18px;border-radius:18px;background:linear-gradient(180deg,#FFF6E0,#FFFCF4);font:700 clamp(1.25rem,4vw,1.9rem)/1.35 var(--font-display);color:var(--navy);text-align:center}
.ws-live__opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;max-width:640px;margin:0 auto}
.ws-live__opt{min-height:54px;border:2px solid var(--line);border-radius:14px;background:#fff;font:800 1.2rem var(--font-body);color:var(--ink);cursor:pointer;transition:transform .1s,background-color .2s}
.ws-live__opt:hover{background:#F3F6FC}
.ws-live__opt:active{transform:scale(.97)}
.ws-live__opt.is-right{background:#DDF3E1;border-color:#3FA34D}
.ws-live__opt.is-wrong{background:#FDE1DE;border-color:#E8553B}
.ws-live__msg{margin:12px 0 0;text-align:center;font-weight:700;color:var(--muted);min-height:1.4em}

/* ==== Geography maker: map games ==== */
.geo-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.geo-live .pa-live__score{margin-left:auto;font-weight:800;color:var(--muted);white-space:pre}
.geo-live__q{margin:14px 0 10px;text-align:center;font:700 clamp(1.2rem,3.6vw,1.7rem)/1.3 var(--font-display);color:var(--navy)}
.geo-live__wrap{max-width:760px;margin:0 auto;border-radius:14px;overflow:hidden}
.geo-live__svg{display:block;width:100%;height:auto;touch-action:manipulation}
.geo-live__land,.geo-live__cell{cursor:pointer;transition:fill .15s}
.geo-live__land:hover{fill:#FFE08A}
.geo-live__cell:hover{fill:#E3F2FD}
.geo-live__msg{margin:10px 0 0;text-align:center;font-weight:700;color:var(--muted);min-height:1.4em}

/* ==== Charts maker: online sticker chart ==== */
.ch-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.ch-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink)}
.ch-live__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-width:560px;margin:16px auto 0;padding:16px;border-radius:20px;background:linear-gradient(180deg,#FFF8E1,#FFFDF5);border:1px solid #F3E3B5}
.ch-live__cell{aspect-ratio:1;border:0;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px #EDE3C8;cursor:pointer;padding:8%;transition:transform .12s}
.ch-live__cell svg{display:block;width:100%;height:100%}
.ch-live__cell:hover{transform:scale(1.05)}
.ch-live__cell.is-on svg{animation:chPop .3s}
@keyframes chPop{50%{transform:scale(1.25)}}
@media (prefers-reduced-motion:reduce){.ch-live__cell,.ch-live__cell.is-on svg{animation:none;transition:none}}
.ch-live__msg{margin:12px 0 0;text-align:center;font:700 clamp(1.05rem,3vw,1.35rem)/1.35 var(--font-display);color:var(--navy);min-height:1.4em}

/* ==== Flash card maker: online flip cards ==== */
.fc-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.fc-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink);max-width:100%}
.fc-live__card{display:block;width:100%;max-width:460px;margin:16px auto 0;aspect-ratio:3/2;border:0;padding:0;background:none;cursor:pointer;perspective:900px}
.fc-live__inner{position:relative;width:100%;height:100%;transition:transform .45s;transform-style:preserve-3d}
.fc-live__card.is-flipped .fc-live__inner{transform:rotateY(180deg)}
.fc-live__face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;border-radius:20px;backface-visibility:hidden;font:700 clamp(1.6rem,6vw,2.8rem)/1.2 var(--font-display);text-align:center;box-shadow:0 14px 30px -20px rgba(27,34,51,.6)}
.fc-live__front{background:#fff;border:3px solid #1E88E5;color:#1E88E5}
.fc-live__back{background:#FFF8E1;border:3px solid #F9A825;color:var(--ink);transform:rotateY(180deg)}
@media (prefers-reduced-motion:reduce){.fc-live__inner{transition:none}}
.fc-live__btns{display:flex;justify-content:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.fc-live__msg{margin:10px 0 0;text-align:center;font-weight:700;color:var(--muted);min-height:1.4em}

/* ==== Cut and paste maker: online sorting game ==== */
.cup-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.cup-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink);max-width:100%}
.cup-live__tray{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:16px 0;min-height:48px}
.cup-live__piece{min-height:44px;padding:6px 16px;border:2px dashed #9AA3B5;border-radius:12px;background:#fff;font:700 1.05rem var(--font-display);color:var(--ink);cursor:grab}
.cup-live__piece.is-sel{border-style:solid;border-color:var(--navy);background:#E8F0FE}
.cup-live__piece.is-no{animation:cupNo .35s}
.cup-live__piece:disabled{cursor:default;border-style:solid;border-color:#3FA34D;background:#E8F5E9}
@keyframes cupNo{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.cup-live__piece.is-no{animation:none}}
.cup-live__bins{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.cup-live__bin{border:2px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;overflow:hidden}
.cup-live__bin:focus-visible{outline:3px solid var(--navy)}
.cup-live__head{padding:10px;background:var(--navy);color:#fff;text-align:center;font:700 1.1rem var(--font-display)}
.cup-live__drop{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:110px;padding:10px}
.cup-live__msg{margin:12px 0 0;text-align:center;font-weight:700;color:var(--muted);min-height:1.4em}

/* ==== Cursive maker: online tracing pad ==== */
.cur-live{margin:18px 0 30px;padding:20px clamp(12px,3vw,26px);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px -30px rgba(27,34,51,.55)}
.cur-live select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:700 15px var(--font-body);background:#fff;color:var(--ink)}
.cur-live__label{margin-left:auto;font-weight:800;color:var(--muted)}
.cur-live__pad{display:block;width:100%;max-width:720px;height:auto;margin:14px auto 0;border:2px solid var(--line);border-radius:18px;background:#fff;touch-action:none;cursor:crosshair}

.psl-panel__grades--wide{flex-wrap:wrap}.psl-panel__grades--wide a{width:auto;padding:0 10px}
