
  :root{
    --ink:#232a36; --muted:#606b7b; --line:#e7ebf1;
    --blue:#2f6bd6; --green:#1f9e6b; --gold:#f4b400; --grey:#8a94a4;
    --purple:#7b4bd0; --teal:#12a39c; --coral:#ef5b4c; --indigo:#5b57d6;
    --pink:#d6478f; --orange:#e07b2a; --rose:#e8536e; --cyan:#0e9fd8;
    --good:#20a36a; --bad:#e04848;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    font-family:'Nunito',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
    color:var(--ink); background:#f1f4f9; -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{font-family:'Baloo 2','Nunito',sans-serif;}
  .ic{display:inline-block;vertical-align:middle;width:1em;height:1em;}
  .ic-xl{width:78px;height:78px;} .ic-lg{width:56px;height:56px;}
  .ic-md{width:42px;height:42px;} .ic-sm{width:30px;height:30px;}

  /* ---------- top bar ---------- */
  .topbar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);
    display:flex;align-items:center;gap:12px;padding:12px 20px;box-shadow:0 2px 10px rgba(20,30,60,.04);}
  .topbar .brand{font-weight:800;font-size:19px;display:flex;align-items:center;gap:9px;cursor:pointer;color:var(--ink);}
  .topbar .brand .ic{width:26px;height:26px;}
  .topbar .home-link{margin-left:auto;font-weight:800;color:var(--blue);cursor:pointer;font-size:15px;
    background:#eef3ff;padding:8px 16px;border-radius:999px;border:0;}
  .topbar .home-link:hover{background:#e0eaff;}

  /* ---------- HOME ---------- */
  .hero{max-width:1080px;margin:0 auto;padding:44px 22px 8px;text-align:center;}
  .hero h1{font-size:46px;margin:0 0 8px;letter-spacing:.3px;}
  .hero p{font-size:19px;color:var(--muted);margin:0;font-weight:700;}
  .path{max-width:1080px;margin:26px auto 70px;padding:0 22px;
    display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
  .lcard{position:relative;display:flex;align-items:center;gap:16px;text-align:left;
    background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px 20px;cursor:pointer;
    box-shadow:0 3px 14px rgba(20,30,60,.05);transition:transform .12s,box-shadow .12s;}
  .lcard:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(20,30,60,.13);}
  .lcard .badge{flex:0 0 auto;width:66px;height:66px;border-radius:20px;display:grid;place-items:center;
    color:#fff;box-shadow:inset 0 -4px 0 rgba(0,0,0,.08);}
  .lcard .badge .ic{width:38px;height:38px;color:#fff;}
  .lcard .step{position:absolute;top:10px;right:14px;font-size:13px;font-weight:900;color:#cbd3df;}
  .lcard h3{margin:0 0 3px;font-size:21px;}
  .lcard .sub{font-size:15px;color:var(--muted);font-weight:700;line-height:1.25;}

  /* ---------- LESSON STAGE ---------- */
  .stage{max-width:1040px;margin:0 auto;padding:26px 18px 40px;}
  .poster{background:#fff;border-radius:30px;overflow:hidden;
    box-shadow:0 14px 40px rgba(20,30,60,.12);border:1px solid var(--line);}
  .phead{--a:var(--blue);background:var(--a);color:#fff;padding:26px 34px;display:flex;align-items:center;gap:18px;}
  .phead .star{width:60px;height:60px;border-radius:18px;background:rgba(255,255,255,.22);
    display:grid;place-items:center;flex:0 0 auto;}
  .phead .star .ic{width:38px;height:38px;}
  .phead h2{margin:0;font-size:38px;line-height:1;letter-spacing:.4px;text-transform:uppercase;}
  .phead .tag{margin:6px 0 0;font-size:19px;font-weight:700;opacity:.95;text-transform:none;}
  .pbody{padding:30px 34px 36px;display:flex;flex-direction:column;gap:22px;}

  /* generic sub-panels */
  .card{background:#fff;border:2px solid var(--line);border-radius:20px;padding:20px 22px;}
  .soft{border-radius:20px;padding:20px 22px;}

  /* lead */
  .lead{display:flex;align-items:center;gap:20px;background:color-mix(in srgb,var(--a) 8%,#fff);
    border:2px solid color-mix(in srgb,var(--a) 22%,#fff);border-radius:20px;padding:20px 24px;}
  .lead .txt{font-size:24px;font-weight:800;line-height:1.25;}
  .lead .ic{flex:0 0 auto;}

  /* article blocks */
  .art{display:flex;flex-direction:column;gap:14px;}
  .artrow{display:flex;align-items:center;gap:18px;border:2px solid var(--line);border-radius:20px;padding:16px 20px;}
  .artrow .pill{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;color:#fff;
    font-family:'Baloo 2';font-weight:800;font-size:26px;flex:0 0 auto;box-shadow:inset 0 -5px 0 rgba(0,0,0,.10);}
  .artrow .mid{flex:1;}
  .artrow .mean{font-size:26px;font-weight:800;}
  .artrow .mean i{color:var(--muted);font-weight:800;}
  .artrow .exwrap{display:flex;align-items:center;gap:14px;margin-top:8px;}
  .artrow .exwrap .ic{width:52px;height:52px;flex:0 0 auto;}
  .artrow .ex{font-size:22px;font-weight:800;}
  .artrow .ex .k{color:var(--a);} .artrow .ex .e{color:var(--muted);font-weight:700;}
  .artrow.stack .exwrap{display:block;}
  .artrow.stack .exline{display:flex;align-items:center;gap:12px;margin-top:6px;}
  .artrow.stack .exline .ic{width:44px;height:44px;}

  /* decision / choice */
  .choice{background:color-mix(in srgb,var(--a) 6%,#fff);border-radius:20px;padding:20px 22px;
    border:2px solid color-mix(in srgb,var(--a) 18%,#fff);}
  .choice .ct{font-family:'Baloo 2';font-weight:800;font-size:22px;color:var(--a);text-align:center;margin-bottom:16px;text-transform:uppercase;letter-spacing:.5px;}
  .crow{display:flex;align-items:center;gap:14px;margin:12px 0;}
  .crow .num{width:40px;height:40px;border-radius:12px;background:var(--a);color:#fff;display:grid;place-items:center;
    font-family:'Baloo 2';font-weight:800;font-size:22px;flex:0 0 auto;}
  .crow .num.lb{background:transparent;} .crow .num.lb .ic{width:40px;height:40px;}
  .crow .q{font-size:20px;font-weight:800;flex:1;line-height:1.2;}
  .crow .ar{color:var(--a);width:34px;height:34px;flex:0 0 auto;}
  .crow .res{background:#fff;border:2px solid color-mix(in srgb,var(--a) 30%,#fff);border-radius:14px;
    padding:10px 14px;font-weight:800;font-size:18px;min-width:120px;text-align:center;}
  .crow .res .k{color:var(--a);}
  .crow .res small{display:block;color:var(--muted);font-weight:800;font-size:15px;}

  /* endings chips */
  .endings{text-align:center;}
  .endings .lbl{font-size:20px;font-weight:800;margin-bottom:14px;}
  .endings .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
  .endings .e{background:var(--a);color:#fff;font-family:'Baloo 2';font-weight:800;font-size:30px;
    padding:12px 30px;border-radius:16px;box-shadow:inset 0 -5px 0 rgba(0,0,0,.10);}

  /* transform table */
  .tt{width:100%;border-collapse:separate;border-spacing:0 10px;}
  .tt td{background:#fff;border-top:2px solid var(--line);border-bottom:2px solid var(--line);padding:14px 12px;vertical-align:middle;}
  .tt td:first-child{border-left:2px solid var(--line);border-radius:16px 0 0 16px;}
  .tt td:last-child{border-right:2px solid var(--line);border-radius:0 16px 16px 0;}
  .tt .w{font-size:24px;font-weight:900;} .tt .w small{display:block;font-size:15px;color:var(--muted);font-weight:800;}
  .tt .k{color:var(--a);} .tt .ic{width:44px;height:44px;} .tt .ar{width:34px;height:34px;color:var(--a);}
  .tt .mean{font-size:20px;font-weight:800;color:var(--muted);}

  /* banner (important rule) */
  .banner{border-radius:20px;overflow:hidden;border:2px solid color-mix(in srgb,var(--a) 30%,#fff);}
  .banner .bh{background:var(--a);color:#fff;padding:12px 18px;font-family:'Baloo 2';font-weight:800;
    font-size:22px;display:flex;align-items:center;justify-content:center;gap:10px;text-transform:uppercase;letter-spacing:.5px;}
  .banner .bh .ic{width:26px;height:26px;}
  .banner .bb{background:color-mix(in srgb,var(--a) 7%,#fff);padding:18px;text-align:center;}
  .banner .bb .big{font-size:26px;font-weight:900;margin-bottom:14px;}
  .banner .icons{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
  .banner .icons .it{text-align:center;font-weight:900;font-size:18px;}
  .banner .icons .it .ic{display:block;width:52px;height:52px;margin:0 auto 4px;}
  .banner .icons .it .k{color:var(--a);}

  /* two big panels */
  .twobig{display:flex;gap:16px;flex-wrap:wrap;}
  .tb{flex:1 1 300px;border:2px solid color-mix(in srgb,var(--c) 30%,#fff);border-radius:20px;overflow:hidden;}
  .tb .th{background:var(--c);color:#fff;padding:12px 18px;font-family:'Baloo 2';font-weight:800;font-size:24px;
    display:flex;align-items:center;gap:12px;}
  .tb .th .ic{width:34px;height:34px;}
  .tb .tbd{padding:18px 20px;}
  .tb .rule{font-size:19px;font-weight:800;line-height:1.3;margin-bottom:12px;}
  .tb .ex{font-size:22px;font-weight:900;} .tb .ex .k{color:var(--c);}
  .tb .ex small{display:block;color:var(--muted);font-weight:800;font-size:17px;margin-top:2px;}

  /* phrase chips */
  .phrases{display:flex;gap:14px;flex-wrap:wrap;}
  .phrases .p{flex:1 1 200px;background:color-mix(in srgb,var(--a) 8%,#fff);border-radius:16px;padding:14px 18px;
    border:2px solid color-mix(in srgb,var(--a) 20%,#fff);}
  .phrases .p .k{font-size:24px;font-weight:900;color:var(--a);}
  .phrases .p .e{font-size:19px;font-weight:800;color:var(--muted);}

  /* person / conjugation table */
  .ptable{border:2px solid color-mix(in srgb,var(--a) 25%,#fff);border-radius:20px;overflow:hidden;}
  .ptable .cap{background:color-mix(in srgb,var(--a) 12%,#fff);color:var(--a);font-family:'Baloo 2';font-weight:800;
    text-align:center;padding:10px;font-size:20px;text-transform:uppercase;letter-spacing:.5px;}
  .ptable table{width:100%;border-collapse:collapse;}
  .ptable thead td{background:color-mix(in srgb,var(--a) 8%,#fff);color:var(--a);font-weight:900;font-size:15px;
    text-transform:uppercase;letter-spacing:.5px;padding:10px 14px;}
  .ptable td{padding:12px 14px;border-top:1px solid var(--line);font-size:22px;font-weight:800;}
  .ptable .who{display:flex;align-items:center;gap:12px;color:var(--muted);font-weight:800;font-size:20px;}
  .ptable .who .ic{width:32px;height:32px;color:var(--a);}
  .ptable .du .st{color:var(--ink);} .ptable .du .en2{color:var(--a);}
  .ptable .eng{color:var(--muted);font-weight:800;font-size:18px;}

  /* pattern strip */
  .pattern{border:2px solid color-mix(in srgb,var(--a) 25%,#fff);border-radius:20px;overflow:hidden;}
  .pattern .cap{background:color-mix(in srgb,var(--a) 12%,#fff);color:var(--a);font-family:'Baloo 2';font-weight:800;
    text-align:center;padding:10px;font-size:20px;text-transform:uppercase;letter-spacing:.5px;}
  .pattern .cols{display:flex;}
  .pattern .col{flex:1;text-align:center;padding:16px 10px;border-left:1px solid var(--line);}
  .pattern .col:first-child{border-left:0;}
  .pattern .col .who{font-size:16px;font-weight:800;color:var(--muted);}
  .pattern .col .form{font-size:24px;font-weight:900;margin:4px 0 8px;}
  .pattern .col .form b{color:var(--a);}
  .pattern .col .ic{color:var(--a);width:30px;height:30px;}
  .pattern .col .res{font-weight:900;font-size:18px;color:var(--a);margin-top:8px;}

  /* slots (word order) */
  .slots{display:flex;flex-direction:column;gap:14px;}
  .slotrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:2px solid var(--line);
    border-radius:18px;padding:14px 16px;}
  .tok{position:relative;background:#f4f6fa;border-radius:12px;padding:12px 16px 14px;font-size:24px;font-weight:900;}
  .tok .n{position:absolute;top:-10px;left:-8px;width:26px;height:26px;border-radius:50%;background:var(--muted);
    color:#fff;font-size:14px;font-weight:900;display:grid;place-items:center;}
  .tok.verb{background:var(--a);color:#fff;} .tok.verb .n{background:#fff;color:var(--a);}
  .slotrow .eng{margin-left:auto;font-weight:800;color:var(--muted);font-size:18px;}

  /* compare good/bad */
  .compare{display:flex;gap:16px;flex-wrap:wrap;}
  .cc{flex:1 1 220px;border-radius:18px;padding:18px 20px;background:#fff;border:2px solid var(--line);}
  .cc.good{border-color:color-mix(in srgb,var(--good) 45%,#fff);background:color-mix(in srgb,var(--good) 6%,#fff);}
  .cc.bad{border-color:color-mix(in srgb,var(--bad) 45%,#fff);background:color-mix(in srgb,var(--bad) 6%,#fff);}
  .cc .top{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
  .cc .top .ic{width:32px;height:32px;}
  .cc .s{font-size:28px;font-weight:900;}
  .cc.bad .s{color:var(--bad);text-decoration:line-through;text-decoration-thickness:3px;}
  .cc .m{font-size:17px;font-weight:800;color:var(--muted);margin-top:4px;}

  /* examples list */
  .exlist{display:flex;flex-direction:column;gap:12px;}
  .exi{display:flex;align-items:center;gap:16px;background:#fff;border:2px solid var(--line);border-radius:18px;padding:15px 18px;}
  .exi .ic{width:40px;height:40px;flex:0 0 auto;}
  .exi .s{font-size:24px;font-weight:900;} .exi .s .k{color:var(--a);}
  .exi .m{font-size:18px;font-weight:800;color:var(--muted);}
  .exi .m::before{content:"= ";color:#c2c9d6;font-weight:900;}

  /* question -> reply (bounce-back) */
  .qa{display:flex;flex-direction:column;gap:16px;}
  .qai{border:2px solid color-mix(in srgb,var(--a) 22%,#fff);border-radius:20px;overflow:hidden;}
  .qai .top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:14px 20px;background:#f5f7fa;}
  .qai .top .who{font-size:13px;font-weight:900;color:#9aa4b2;text-transform:uppercase;letter-spacing:1px;}
  .qai .top .say{font-size:24px;font-weight:900;}
  .qai .top .en{font-size:16px;color:var(--muted);font-weight:800;}
  .qai .rep{display:flex;align-items:center;gap:14px;padding:16px 20px;}
  .qai .rep .ar{width:32px;height:32px;color:var(--a);flex:0 0 auto;}
  .qai .rep .rlbl{font-size:13px;font-weight:900;color:#9aa4b2;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;}
  .qai .rep .say{font-size:27px;font-weight:900;} .qai .rep .say b{color:var(--a);}
  .qai .foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 20px;
    background:color-mix(in srgb,var(--a) 9%,#fff);border-top:2px solid color-mix(in srgb,var(--a) 15%,#fff);}
  .qai .foot .chip{background:var(--a);color:#fff;font-weight:900;font-size:17px;padding:6px 14px;border-radius:999px;flex:0 0 auto;}
  .qai .foot .when{font-size:17px;font-weight:800;color:var(--muted);}

  /* two columns (adjectives) */
  .twocol{display:flex;gap:16px;flex-wrap:wrap;}
  .twocol .col{flex:1 1 280px;border:2px solid var(--line);border-radius:20px;padding:18px 20px;text-align:center;}
  .twocol .col .ic{width:52px;height:52px;}
  .twocol .col h4{font-family:'Baloo 2';margin:8px 0 10px;font-size:22px;color:var(--a);}
  .twocol .col .big{font-size:26px;font-weight:900;} .twocol .col .big b{color:var(--a);}
  .twocol .col .en{font-size:17px;color:var(--muted);font-weight:800;margin-top:4px;}

  /* meanings grid (op) */
  .mg{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .mg .m{display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--line);border-radius:18px;padding:15px 16px;}
  .mg .m .ic{width:44px;height:44px;flex:0 0 auto;}
  .mg .m .k{font-size:23px;font-weight:900;color:var(--a);}
  .mg .m .e{font-size:16px;font-weight:800;color:var(--muted);}

  /* ladder (thanks) */
  .ladder{display:flex;flex-direction:column;gap:10px;}
  .ladder .r{display:flex;align-items:center;gap:16px;border-radius:16px;padding:16px 20px;color:#fff;}
  .ladder .r .k{font-size:26px;font-weight:900;} .ladder .r .e{margin-left:auto;font-size:18px;font-weight:800;opacity:.95;}

  /* note + remember */
  .note{font-size:19px;font-weight:800;color:var(--muted);line-height:1.35;padding:0 4px;}
  .note::before{content:"psst — ";color:var(--a);font-weight:900;}
  .remember{background:var(--a);color:#fff;border-radius:20px;padding:22px 26px;display:flex;align-items:center;gap:18px;}
  .remember .ic{width:44px;height:44px;flex:0 0 auto;}
  .remember .r .lab{display:block;font-size:14px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;opacity:.85;margin-bottom:5px;}
  .remember .r .t{font-size:23px;font-weight:900;line-height:1.28;}

  /* nav */
  .lnav{display:flex;align-items:center;gap:12px;max-width:1040px;margin:18px auto 0;padding:0 18px 60px;}
  .lnav button{font-family:'Nunito';font-weight:800;font-size:16px;border:0;border-radius:14px;padding:14px 20px;cursor:pointer;
    background:#fff;border:2px solid var(--line);color:var(--ink);display:flex;align-items:center;gap:8px;}
  .lnav button:hover{border-color:#cbd3df;}
  .lnav button:disabled{opacity:.35;cursor:default;}
  .lnav .next{margin-left:auto;background:var(--blue);color:#fff;border-color:var(--blue);}
  .lnav .next:hover{background:#2559b8;}
  .lnav .ic{width:20px;height:20px;}

  @media (max-width:620px){
    .phead h2{font-size:28px;} .pbody{padding:22px 18px 26px;}
    .mg{grid-template-columns:1fr;} .hero h1{font-size:34px;}
  }

/* ---- v3 additions: new colours, groups, list & number blocks ---- */
:root{--sky:#0ea5e9;--amber:#e0921a;--lime:#4c9a2a;--violet:#8b5cf6;--plum:#9d4d8c;--brown:#a9713a;}
a.lcard{text-decoration:none;color:var(--ink);}
.lcard .badge .ic{color:#fff;}
.topbar a.brand,.topbar a.home-link{text-decoration:none;}
/* mascot avatar (Keke's bitmoji) */
.hero .keke-hero{width:96px;height:96px;border-radius:50%;background:#fffc00;display:block;margin:0 auto 14px;
  box-shadow:0 8px 20px rgba(20,30,60,.16),0 0 0 5px #fff;}
.kavatar{position:relative;flex:0 0 auto;width:62px;height:62px;}
.kavatar .keke{width:62px;height:62px;border-radius:50%;background:#fffc00;display:block;box-shadow:0 0 0 3px rgba(255,255,255,.92);}
.kavatar .kbadge{position:absolute;right:-5px;bottom:-5px;width:28px;height:28px;border-radius:50%;background:#fff;
  display:grid;place-items:center;box-shadow:0 2px 7px rgba(0,0,0,.22);}
.kavatar .kbadge .ic{width:18px;height:18px;color:var(--a);}
.group-h{max-width:1080px;margin:36px auto 2px;padding:0 24px;display:flex;align-items:center;gap:14px;}
.group-h .bar{width:14px;height:36px;border-radius:6px;background:var(--gc);flex:0 0 auto;}
.group-h .gt{font-family:'Baloo 2';font-size:28px;font-weight:800;line-height:1.05;}
.group-h .gs{color:var(--muted);font-weight:700;font-size:15px;}
.lnav a{font-family:'Nunito';font-weight:800;font-size:16px;text-decoration:none;border-radius:14px;padding:14px 20px;
  background:#fff;border:2px solid var(--line);color:var(--ink);display:flex;align-items:center;gap:8px;}
.lnav a:hover{border-color:#cbd3df;}
.lnav a.next{margin-left:auto;color:#fff;}
.lnav a.disabled{opacity:.35;pointer-events:none;}
.lst{border:2px solid color-mix(in srgb,var(--a) 18%,#fff);border-radius:18px;overflow:hidden;}
.lst .h{background:color-mix(in srgb,var(--a) 10%,#fff);color:var(--a);font-weight:900;padding:11px 20px;
  font-size:16px;text-transform:uppercase;letter-spacing:1px;}
.lst .r{display:flex;align-items:center;gap:14px;padding:13px 20px;border-top:1px solid var(--line);}
.lst .r .k{font-size:24px;font-weight:900;color:var(--a);}
.lst .r .e{font-size:19px;font-weight:800;color:var(--muted);margin-left:auto;}
.numgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;}
.numgrid .n{background:#fff;border:2px solid var(--line);border-radius:16px;padding:14px 6px;text-align:center;}
.numgrid .n .d{font-size:22px;font-weight:900;color:var(--a);line-height:1;}
.numgrid .n .w{font-size:17px;font-weight:800;margin-top:4px;}

/* ---- prevent any horizontal overflow ---- */
html,body{max-width:100%;overflow-x:hidden;}
.poster,.pbody,.pbody>*{min-width:0;max-width:100%;}
img,svg{max-width:100%;}

/* ---- full mobile pass ---- */
@media (max-width:640px){
  .site-header{padding:32px 18px 4px;}
  .stage{padding:16px 12px 28px;}
  .phead{padding:18px 18px;gap:13px;}
  .phead .star{width:46px;height:46px;border-radius:14px;}
  .phead .star .ic{width:28px;height:28px;}
  .phead h2{font-size:23px;}
  .phead .tag{font-size:15px;margin-top:4px;}
  .kavatar{width:52px;height:52px;} .kavatar .keke{width:52px;height:52px;}
  .kavatar .kbadge{width:24px;height:24px;right:-4px;bottom:-4px;} .kavatar .kbadge .ic{width:15px;height:15px;}
  .hero .keke-hero{width:82px;height:82px;}
  .pbody{padding:18px 15px 24px;gap:18px;}
  .ic-xl{width:52px;height:52px;} .ic-lg{width:44px;height:44px;}

  .lead{padding:15px 15px;gap:13px;}
  .lead .txt{font-size:19px;}

  /* numbers */
  .numgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
  .numgrid .n{padding:11px 3px;}
  .numgrid .n .d{font-size:18px;} .numgrid .n .w{font-size:14px;}

  /* decision tree — give the question room, shrink the rest */
  .choice{padding:16px 13px;}
  .choice .ct{font-size:19px;margin-bottom:12px;}
  .crow{gap:9px;margin:10px 0;}
  .crow .num{width:32px;height:32px;font-size:17px;border-radius:9px;}
  .crow .num.lb .ic{width:32px;height:32px;}
  .crow .q{font-size:15px;line-height:1.15;}
  .crow .ar{width:22px;height:22px;}
  .crow .res{min-width:90px;padding:8px 9px;font-size:15px;}
  .crow .res small{font-size:12px;}

  /* article rows */
  .artrow{gap:12px;padding:13px 13px;}
  .artrow .pill{width:56px;height:56px;font-size:20px;}
  .artrow .mean{font-size:20px;}
  .artrow .ex{font-size:18px;} .artrow .exwrap{gap:10px;}
  .artrow .exwrap .ic{width:40px;height:40px;} .artrow.stack .exline .ic{width:36px;height:36px;}

  /* transform + person tables */
  .tt td{padding:11px 7px;} .tt .w{font-size:19px;} .tt .w small{font-size:13px;}
  .tt .ic{width:34px;height:34px;} .tt .ar{width:26px;height:26px;} .tt .mean{font-size:15px;}
  .ptable td{padding:10px 11px;font-size:18px;}
  .ptable thead td{font-size:12px;padding:9px 11px;}
  .ptable .who{font-size:16px;gap:9px;} .ptable .who .ic{width:26px;height:26px;}
  .ptable .eng{font-size:14px;} .ptable .cap{font-size:17px;}

  /* endings / chips / lists */
  .endings .e{font-size:26px;padding:11px 22px;}
  .lst .h{font-size:14px;padding:10px 16px;}
  .lst .r{padding:11px 16px;gap:10px;} .lst .r .k{font-size:20px;} .lst .r .e{font-size:15px;}

  /* pattern strip + word-order slots */
  .pattern .cap{font-size:17px;} .pattern .col{padding:13px 6px;}
  .pattern .col .who{font-size:13px;} .pattern .col .form{font-size:19px;} .pattern .col .res{font-size:15px;}
  .slots{gap:12px;} .slotrow{padding:12px 12px;gap:8px;}
  .tok{font-size:19px;padding:9px 12px 11px;} .tok .n{width:22px;height:22px;font-size:12px;}
  .slotrow .eng{font-size:15px;}

  /* two-panel / describe / examples / meanings / qa / ladder */
  .tb .th{font-size:20px;} .tb .th .ic{width:30px;height:30px;} .tb .rule{font-size:17px;} .tb .ex{font-size:19px;} .tb .ex small{font-size:15px;}
  .twocol .col{padding:15px 14px;} .twocol .col h4{font-size:19px;} .twocol .col .big{font-size:22px;}
  .exi{padding:13px 14px;gap:12px;} .exi .ic{width:34px;height:34px;} .exi .s{font-size:20px;} .exi .m{font-size:15px;}
  .mg{grid-template-columns:1fr;} .mg .m .k{font-size:20px;} .mg .m .e{font-size:15px;}
  .qai .top{padding:12px 15px;gap:9px;} .qai .top .say{font-size:20px;} .qai .top .en{font-size:14px;}
  .qai .rep{padding:14px 15px;} .qai .rep .say{font-size:21px;} .qai .foot{padding:11px 15px;}
  .qai .foot .chip{font-size:15px;} .qai .foot .when{font-size:15px;}
  .ladder .r{padding:14px 16px;} .ladder .r .k{font-size:21px;} .ladder .r .e{font-size:15px;}
  .phrases .p .k{font-size:21px;} .phrases .p .e{font-size:16px;}

  /* banner + compare + remember + note */
  .banner .bh{font-size:19px;} .banner .bb .big{font-size:21px;} .banner .icons{gap:12px;} .banner .icons .it{font-size:15px;} .banner .icons .it .ic{width:44px;height:44px;}
  .compare .cc{padding:15px 15px;} .cc .s{font-size:23px;} .cc .m{font-size:15px;}
  .rule{font-size:21px;padding:18px 18px;}
  .note{font-size:17px;}
  .remember{padding:17px 17px;gap:14px;} .remember .r .t{font-size:19px;} .remember .ic{width:38px;height:38px;}

  /* nav stacks nicely */
  .lnav{flex-wrap:wrap;gap:8px;padding:0 12px 46px;margin-top:14px;}
  .lnav a{font-size:14px;padding:12px 14px;}
  .lnav a.next{margin-left:0;flex:1 1 100%;justify-content:center;order:-1;}
}
@media (max-width:400px){
  .numgrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .phead h2{font-size:21px;}
}
