/* Look K · "Syllabus" (lessons and learning). Fonts: Lexend, Atkinson Hyperlegible Next, Literata (OFL, public/fonts). */
@font-face{font-family:"K Lexend";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/lexend-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"K Lexend";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/lexend-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"K Atkinson";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/atkinson-hyperlegible-next-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"K Atkinson";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/atkinson-hyperlegible-next-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"K Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/literata-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"K Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/literata-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Reference palette "pencil" (design.ts palettes override these tokens) */
:root{--bg:#f3f5f9;--paper:#ffffff;--ink:#141b2e;--mute:#525a6f;--line:#d3d8e3;--dot:#b8c1d3;--acc:#2346d1;--onacc:#ffffff;--rib:#2346d1;--onrib:#ffffff;
--t1:#ffd45c;--t2:#a6ddcb;--t3:#f7b8a6;--t4:#c5d3ff;--ontab:#141b2e;--rule:#c9d6f2;--margin:#e0604a;--band:#172146;--onband:#f3f5f9;
--fold:var(--paper);--onfold:var(--ink);--fbtn:var(--acc);--onfbtn:var(--onacc);--ftab:var(--acc);--onftab:var(--onacc);
--r:calc(18px*var(--tune-radius,1));--rs:10px;--max:1200px;--pad:clamp(20px,4vw,48px);--edge:clamp(20px,1.7vw,32px);--hh:64px;--hw:600;
--kd:"K Lexend",var(--fd);--kt:"K Atkinson",var(--ft);
--g-max:calc(var(--max) + 2 * var(--pad));--g-pad:var(--pad);--g-bg:var(--bg);--g-paper:var(--paper);--g-ink:var(--ink);--g-muted:var(--mute);--g-line:var(--line);--g-accent:var(--acc);--g-surface:var(--paper)}
body.f-clear{--kd:"K Lexend",var(--fd);--kt:"K Atkinson",var(--ft)}
body.f-book{--kd:"K Literata",var(--fd);--kt:"K Atkinson",var(--ft);--hw:600}
body.f-plain{--kd:"K Lexend",var(--fd);--kt:"K Lexend",var(--ft)}
/* the gallery takes the look's faces; set here (not on :root) so each body.f-* class resolves its own --kd/--kt */
body{--g-fd:var(--kd);--g-ft:var(--kt)}

/* base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 calc(17px*var(--tune-size,1))/1.6 var(--kt);-webkit-font-smoothing:antialiased;font-feature-settings:"kern"}
body.f-plain{font-weight:300}
:where(img){display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.22em}
figure,blockquote{margin:0}
h1,h2,h3{font-family:var(--kd);font-weight:var(--hw);letter-spacing:-.022em;line-height:1.06;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
h1,h2,h3,p,li,td,dd,dt,b,summary,blockquote,a,.k-tab,.k-chip{overflow-wrap:anywhere;hyphens:auto}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2.5px solid var(--acc);outline-offset:3px;border-radius:calc(6px*var(--tune-radius,1))}
.k-wrap{max-width:calc(var(--max) + 2 * var(--pad));margin:0 auto;padding:0 var(--pad)}
.k-wrap>*,.k-desk>*,.k-folder>*,.k-head>*,.k-about>*,.k-svc>*,.k-ct>*,.k-faq>*{min-width:0}
.k-sec{padding:calc(clamp(72px,8vw,120px)*var(--tune-space,1)) var(--pad) 0}

/* buttons */
.k-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border:2px solid var(--acc);border-radius:calc(12px*var(--tune-radius,1));background:var(--acc);color:var(--onacc);font:600 calc(16px*var(--tune-size,1))/1.15 var(--kd);letter-spacing:-.005em;text-align:center;text-decoration:none;cursor:pointer}
.k-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.k-btn-s{min-height:44px;padding:0 18px;font-size:calc(15px*var(--tune-size,1));border-radius:calc(10px*var(--tune-radius,1))}
.k-cta{display:flex;flex-wrap:wrap;gap:12px}
/* the hero has one action; the dated term note sits under it as its second line */
.k-act{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-top:calc(40px*var(--tune-space,1))}

/* nav: a row of divider tabs standing on the header's ruled line; the current page is the open tab joined to the
   page (same height as the others, so every label sits on one centre line), "Book a trial" is the accent tab at the end.
   Every item is a 44px row on the same bottom edge. The header runs to the same tight edge as the hero folder.
   Up to 860px: one row (name, trial tab, menu); up to 520px: name and menu only, the hero button sits right below. */
.k-nav{position:relative;z-index:20;display:flex;align-items:flex-end;gap:16px 28px;min-height:var(--hh);padding:0 var(--edge);background:linear-gradient(var(--line),var(--line)) 50% 100%/calc(100% - 2 * var(--edge)) 1px no-repeat}
.k-logo{display:inline-flex;align-items:center;gap:12px;min-height:44px;font:600 calc(20px*var(--tune-size,1))/1.1 var(--kd);letter-spacing:-.015em;text-decoration:none;margin-right:auto;align-self:center;translate:0 10px}
.k-mark{flex:none;width:14px;height:20px;background:var(--rib);clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%)}
.k-links{display:flex;align-items:flex-end;gap:4px;list-style:none;margin:0;padding:0;font-size:calc(15px*var(--tune-size,1))}
.k-links a{display:flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid transparent;border-bottom:0;border-radius:calc(10px*var(--tune-radius,1)) calc(10px*var(--tune-radius,1)) 0 0;background:color-mix(in srgb,var(--ink) 6%,var(--bg));color:var(--ink);text-decoration:none;white-space:nowrap;transition:background-color .2s}
.k-links a:hover{background:color-mix(in srgb,var(--ink) 11%,var(--bg))}
.k-links a[aria-current]{position:relative;z-index:1;margin-bottom:-1px;padding-bottom:1px;border-color:var(--line);background:var(--bg);font-weight:600}
.k-nav .nav-end{display:flex;align-items:center;gap:20px;min-height:44px}
.k-nav .k-btn-s{min-height:44px;margin-bottom:0;border-radius:calc(10px*var(--tune-radius,1)) calc(10px*var(--tune-radius,1)) 0 0}
.k-menu{display:none}
.k-menu summary{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:calc(10px*var(--tune-radius,1));background:var(--paper);color:var(--ink);font:600 calc(15px*var(--tune-size,1))/1 var(--kd);cursor:pointer;list-style:none}
.k-menu summary::-webkit-details-marker{display:none}
.k-mi{position:relative;width:18px;height:12px;border-block:2px solid currentColor}
.k-mi::before,.k-mi::after{content:"";position:absolute;left:0;right:0;top:3px;border-top:2px solid currentColor}
.k-menu[open] .k-mi{border-color:transparent}.k-menu[open] .k-mi::before{rotate:45deg}.k-menu[open] .k-mi::after{rotate:-45deg}
.k-sheetm{position:absolute;left:var(--edge);right:var(--edge);top:calc(100% + 10px);padding:8px 22px 22px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-top:5px solid var(--acc);border-radius:calc(6px*var(--tune-radius,1)) calc(6px*var(--tune-radius,1)) var(--r) var(--r);box-shadow:0 28px 48px -28px rgb(0 0 0 / .4)}
.k-sheetm ul{list-style:none;margin:0;padding:0}
.k-sheetm>ul a{display:flex;align-items:center;min-height:54px;border-bottom:1px solid var(--rule);font:600 calc(18px*var(--tune-size,1))/1.2 var(--kd);text-decoration:none}
.k-sheetm a[aria-current]{color:var(--acc)}
.k-mend{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}
.k-mend .langs{margin:0}
@media (max-width:860px){.k-nav{align-items:center;gap:12px}.k-logo{font-size:calc(18px*var(--tune-size,1));gap:10px;translate:none}.k-links,.k-nav .nav-end .langs{display:none}.k-nav .k-btn-s{border-radius:calc(10px*var(--tune-radius,1))}.k-menu{display:block}}
@media (max-width:520px){.k-nav .nav-end{display:none}}

/* dot-grid paper: behind heroes and page headers, fading out at the bottom */
.k-hero,.k-ph{position:relative;isolation:isolate}
.k-hero::before,.k-ph::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle at 1px 1px,var(--dot) 1.15px,transparent 1.6px);background-size:24px 24px;background-position:calc(50% + 12px) 0;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}

/* small pieces: kicker label, term note, bookmark ribbon */
.k-kick{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:calc(9px*var(--tune-radius,1));background:var(--t1);color:var(--ontab);font:600 calc(15px*var(--tune-size,1))/1.2 var(--kd);letter-spacing:-.005em}
.k-lede{font-size:calc(clamp(18px,1.45vw,21px)*var(--tune-size,1));line-height:1.5;color:var(--mute);max-width:34ch}
.k-note{display:flex;align-items:center;gap:12px;font-size:calc(15px*var(--tune-size,1));line-height:1.35;color:var(--mute)}
.k-note i{flex:none;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,var(--acc) 0 4.5px,color-mix(in srgb,var(--acc) 20%,transparent) 5px)}
.k-rib{position:absolute;display:flex;align-items:center;justify-content:center;width:clamp(96px,8vw,116px);background:var(--rib);color:var(--onrib);font:600 calc(clamp(14px,1.1vw,15px)*var(--tune-size,1))/1.25 var(--kd);text-align:center;letter-spacing:-.005em}

/* hero "folder": an open paper folder that fills the first screen. Its left half is the photo, flush to the folder's
   edges; the words sit bottom-left of the right half. The accent tab carries the kicker; the bookmark ribbon sticks up
   out of the folder's top edge on the right (tucked in behind the paper), so nothing sits on the photo. */
.k-hf{--rh:clamp(60px,5.2vw,76px);--rf:calc(clamp(18px,2vw,28px)*var(--tune-radius,1));padding:calc(var(--rh) + 12px) var(--edge) 0}
.k-folder{position:relative;display:grid;grid-template-columns:minmax(0,52fr) minmax(0,48fr);min-height:max(540px,calc(100svh - var(--hh) - var(--rh) - 22px));background:var(--fold);color:var(--onfold);border:1px solid var(--line);border-radius:0 var(--rf) var(--rf) var(--rf)}
.k-ftab{position:absolute;left:-1px;bottom:100%;display:flex;align-items:center;min-height:46px;max-width:calc(100% - 180px);padding:0 24px;background:var(--ftab);color:var(--onftab);border-radius:calc(14px*var(--tune-radius,1)) calc(14px*var(--tune-radius,1)) 0 0;font:600 calc(15px*var(--tune-size,1))/1.2 var(--kd)}
.k-hf .k-rib{bottom:100%;left:calc(52% + clamp(28px,2.8vw,44px));height:var(--rh);padding:16px 12px 6px;clip-path:polygon(0 0,50% 16px,100% 0,100% 100%,0 100%);transform-origin:50% 100%}
.k-fp{position:relative;margin:-1px 0 -1px -1px;overflow:hidden;border-radius:0 0 0 var(--rf);background:var(--line)}
.k-fp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.k-fl{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:clamp(28px,2.8vw,44px)}
.k-hero h1{font-size:calc(clamp(46px,6.3vw,100px)*var(--tune-size,1));font-weight:700;letter-spacing:-.04em;line-height:.96}
.k-fl .k-lede{margin-top:clamp(20px,2vw,28px)}
.k-fl .k-act{margin-top:calc(clamp(28px,3vw,40px)*var(--tune-space,1))}
.k-folder .k-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
@media (max-width:820px){
:root{--edge:var(--pad)}
.k-hero h1{font-size:calc(clamp(46px,9vw,72px)*var(--tune-size,1))}
.k-hf{padding:calc(var(--rh) + 8px) 0 0}
.k-folder{grid-template-columns:minmax(0,1fr);min-height:0;border-inline:0;border-radius:0}
.k-ftab{left:var(--pad);min-height:42px;padding:0 18px;max-width:calc(100% - 2 * var(--pad) - 108px)}
.k-hf .k-rib{left:auto;right:var(--pad)}
.k-fp{height:clamp(260px,36svh,420px);margin:0;border-radius:0}
.k-fl{padding:24px var(--pad) 32px}}
@media (max-width:520px){.k-rib{width:88px;font-size:calc(13px*var(--tune-size,1))}.k-act,.k-act .k-btn{width:100%}.k-lede{font-size:calc(17px*var(--tune-size,1))}}

/* hero "desk": an exact half split, the words on the dot paper at the left, the photo to the right edge of the screen;
   the ribbon hangs from the header line above the words */
.k-desk{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:max(560px,calc(100svh - var(--hh)))}
.k-dl{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:calc(clamp(120px,12vw,170px)*var(--tune-space,1)) clamp(28px,4vw,64px) calc(clamp(40px,5vw,72px)*var(--tune-space,1)) var(--edge)}
.k-dl h1{margin-top:28px}
.k-dl .k-lede{margin-top:24px}
.k-hd .k-rib{top:0;right:clamp(28px,4vw,64px);min-height:clamp(104px,9vw,124px);padding:16px 12px 34px;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 16px),0 100%);transform-origin:50% 0}
.k-dp{position:relative;overflow:hidden;background:var(--line)}
.k-dp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:820px){.k-desk{grid-template-columns:minmax(0,1fr);min-height:0}.k-dp{order:-1;height:clamp(260px,36svh,420px)}.k-dl{padding:28px var(--pad) 32px}.k-hd .k-rib{min-height:84px;padding-bottom:28px}.k-dl h1{margin-top:24px;max-width:calc(100% - 96px)}}
@media (max-width:520px){.k-cta{flex-direction:column}.k-cta .k-btn{width:100%}}

/* section heads: title left, lede right, on one bottom line */
.k-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px 64px;align-items:last baseline;margin-bottom:calc(clamp(48px,5vw,72px)*var(--tune-space,1))}
.k-head h2,.k-path h2,.k-at h2,.k-faq h2,.k-ct h2{font-size:calc(clamp(34px,3.8vw,54px)*var(--tune-size,1))}
.k-head p{font-size:calc(19px*var(--tune-size,1));line-height:1.5;color:var(--mute);max-width:40ch;justify-self:end}
@media (max-width:820px){.k-head{grid-template-columns:minmax(0,1fr)}.k-head p{justify-self:start}}

/* services "cards": index cards whose coloured tabs step across the row like a card file */
.k-cards{list-style:none;margin:0;padding:34px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:60px 20px}
.k-cards.n3,.k-cards.n5,.k-cards.n6{grid-template-columns:repeat(3,minmax(0,1fr))}
.k-cards.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.k-cards.n1{grid-template-columns:minmax(0,1fr)}
.k-card{position:relative;display:flex;flex-direction:column;padding:30px 26px 24px;background:var(--paper);border:1px solid var(--line);border-top:6px solid var(--tc);border-radius:calc(6px*var(--tune-radius,1)) calc(6px*var(--tune-radius,1)) var(--r) var(--r)}
.k-tab{position:absolute;bottom:100%;left:calc(14px + var(--p,0) * (100% - 28px));translate:calc(var(--p,0) * -100%) 0;display:flex;align-items:center;min-height:34px;max-width:calc(100% - 28px);margin:0;padding:0 14px;border-radius:calc(9px*var(--tune-radius,1)) calc(9px*var(--tune-radius,1)) 0 0;background:var(--tc);color:var(--ontab);font:600 14px/1.15 var(--kd);letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-card h3{font-size:calc(clamp(22px,1.9vw,26px)*var(--tune-size,1))}
.k-card>p{margin-top:12px;color:var(--mute);font-size:calc(16px*var(--tune-size,1));line-height:1.55}
.k-cf{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:auto;padding-top:22px;border-top:1px dashed var(--line);font-size:calc(15px*var(--tune-size,1));color:var(--mute)}
.k-card>p+.k-cf{margin-top:auto}
.k-card>p{margin-bottom:24px}
.k-cf b{font:600 calc(20px*var(--tune-size,1))/1 var(--kd);color:var(--ink);font-variant-numeric:tabular-nums lining-nums;text-align:right}
@media (max-width:1060px){.k-cards,.k-cards.n3,.k-cards.n5,.k-cards.n6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.k-cards,.k-cards.n2,.k-cards.n3,.k-cards.n5,.k-cards.n6{grid-template-columns:minmax(0,1fr);gap:54px}}

/* services "margin": an exercise-book page; durations sit in the margin left of the red rule */
.k-book{--mw:96px;--gap:32px;position:relative;list-style:none;margin:0;padding:0;border-block:1px solid var(--ink)}  /* ruled rows on the page itself, no box */
.k-book::before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--mw) + var(--gap) / 2 - 1px);width:2px;background:var(--margin);opacity:.85}
.k-book li{display:grid;grid-template-columns:var(--mw) minmax(0,1fr) minmax(0,15em) 7.5em;align-items:baseline;column-gap:var(--gap);padding:28px 0;border-bottom:1px solid var(--line)}
.k-book li:last-child{border-bottom:0}
.k-book.np li{grid-template-columns:var(--mw) minmax(0,1fr) minmax(0,14em)}
.k-bm{text-align:right;font:600 calc(15px*var(--tune-size,1))/1.3 var(--kd);color:var(--mute);font-variant-numeric:tabular-nums}
.k-bn b{display:block;font:var(--hw) calc(clamp(21px,1.8vw,25px)*var(--tune-size,1))/1.15 var(--kd);letter-spacing:-.015em}
.k-bn span{display:block;margin-top:6px;color:var(--mute);font-size:calc(16px*var(--tune-size,1));line-height:1.5;max-width:52ch}
.k-bf{display:flex;align-items:baseline;gap:10px;font-size:calc(15px*var(--tune-size,1));line-height:1.35}
.k-bf i{flex:none;width:10px;height:10px;border-radius:calc(3px*var(--tune-radius,1));background:var(--tc);translate:0 1px}
.k-bp{text-align:right;font:600 20px/1.2 var(--kd);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
@media (max-width:820px){.k-book{--mw:56px;--gap:28px}.k-book li{grid-template-columns:var(--mw) minmax(0,1fr) auto;row-gap:10px;padding:22px 0}.k-bn{grid-column:2/4}.k-bf{grid-column:2}.k-bp{grid-column:3}.k-bm{font-size:calc(14px*var(--tune-size,1));grid-row:1}.k-book.np li{grid-template-columns:var(--mw) minmax(0,1fr)}.k-book.np .k-bn{grid-column:2}}

/* how lessons work: a real sequence, so numbered; one track joins the stops */
.k-path h2{margin-bottom:calc(clamp(44px,5vw,64px)*var(--tune-space,1))}
.k-path ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 28px}
.k-path ol.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.k-path li{position:relative;padding-top:calc(80px*var(--tune-space,1))}
.k-path li:not(:last-child)::before{content:"";position:absolute;top:27px;left:68px;right:-16px;height:2px;border-radius:calc(2px*var(--tune-radius,1));background:var(--acc);transform-origin:0 50%}
.k-stop{position:absolute;top:0;left:0;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--acc);color:var(--onacc);font:600 calc(20px*var(--tune-size,1))/1 var(--kd);font-variant-numeric:lining-nums}
.k-path h3{font-size:calc(22px*var(--tune-size,1))}
.k-path p{margin-top:10px;color:var(--mute);font-size:calc(16px*var(--tune-size,1));max-width:30ch}
@media (max-width:820px){.k-path ol,.k-path ol.n3{grid-template-columns:minmax(0,1fr);gap:0}.k-path li{padding:12px 0 calc(40px*var(--tune-space,1)) 84px;min-height:56px}.k-path li:last-child{padding-bottom:0}.k-path li:not(:last-child)::before{top:68px;bottom:12px;left:27px;right:auto;width:2px;height:auto;transform-origin:50% 0}.k-path p{max-width:none}}

/* a full-bleed photo between the lesson path and the about section */
.k-pic{margin:calc(clamp(72px,8vw,120px)*var(--tune-space,1)) 0 0;height:clamp(300px,40vw,620px);overflow:hidden;background:var(--line)}
.k-pic img{width:100%;height:100%;object-fit:cover}

/* about + facts (a report card's bottom line: the figures in one ruled row, a tab-colour mark on each label) */
.k-about{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:center}
.k-ap{aspect-ratio:4/5;border-radius:var(--r);overflow:hidden}
.k-ap img{width:100%;height:100%;object-fit:cover}
.k-at>p{margin-top:20px;font-size:calc(19px*var(--tune-size,1));line-height:1.55;color:var(--mute);max-width:44ch}
.k-facts{list-style:none;margin:calc(44px*var(--tune-space,1)) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.k-facts.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.k-facts.n2{grid-template-columns:repeat(2,minmax(0,1fr))}.k-facts.n1{grid-template-columns:minmax(0,1fr)}
.k-facts li{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 18px 0 0}
.k-facts li+li{padding-left:18px;border-left:1px solid var(--line)}
.k-facts li::before{content:"";position:absolute;top:-1px;left:0;width:28px;height:4px;background:var(--tc)}
.k-facts li+li::before{left:18px}
.k-facts b{font:600 calc(clamp(32px,3vw,44px)*var(--tune-size,1))/1 var(--kd);letter-spacing:-.03em;font-variant-numeric:lining-nums}
.k-facts span{font-size:calc(15px*var(--tune-size,1));line-height:1.4;color:var(--mute)}
@media (max-width:820px){.k-about{grid-template-columns:minmax(0,1fr)}.k-ap{aspect-ratio:4/3}}
@media (max-width:600px){.k-facts,.k-facts.n3{grid-template-columns:repeat(2,minmax(0,1fr))}.k-facts li{padding-bottom:20px}.k-facts li:nth-child(odd){padding-left:0;border-left:0}.k-facts li:nth-child(odd)::before{left:0}.k-facts li:nth-child(n+3){border-top:1px solid var(--line)}}

/* testimonial "reference": the quote band, a ribbon with the quote mark hanging from its top edge */
.k-quote{position:relative;margin-top:calc(clamp(72px,8vw,120px)*var(--tune-space,1));padding:calc(clamp(120px,11vw,152px)*var(--tune-space,1)) 0 calc(clamp(72px,8vw,112px)*var(--tune-space,1));background:var(--band);color:var(--onband);text-align:center}
.k-qrib{position:absolute;top:0;left:calc(50% - 32px);width:64px;height:88px;padding-top:14px;display:flex;justify-content:center;background:var(--t1);color:var(--ontab);font:600 calc(56px*var(--tune-size,1))/1 var(--kd);clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 16px),0 100%)}
.k-quote blockquote{max-width:28ch;margin:0 auto;font:500 calc(clamp(26px,3vw,42px)*var(--tune-size,1))/1.22 var(--kd);letter-spacing:-.02em;text-wrap:balance}
.k-quote em,.k-notes em{font-style:normal;background:linear-gradient(transparent 62%,color-mix(in srgb,var(--t1) 55%,transparent) 62%)}
.k-quote em{background:none;text-decoration:underline;text-decoration-color:var(--t1);text-decoration-thickness:3px;text-underline-offset:.18em}
.k-by{margin-top:28px;font-size:calc(16px*var(--tune-size,1));font-weight:600}
/* testimonial "notes": two quote cards of one height, names on one bottom line */
.k-notes ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.k-notes li{display:flex;flex-direction:column;padding:clamp(28px,3vw,40px);background:var(--paper);border:1px solid var(--line);border-left:6px solid var(--tc);border-radius:calc(6px*var(--tune-radius,1)) var(--r) var(--r) calc(6px*var(--tune-radius,1))}
.k-notes blockquote{font:500 calc(clamp(21px,1.9vw,26px)*var(--tune-size,1))/1.35 var(--kd);letter-spacing:-.015em}
.k-notes .k-by{margin-top:auto;padding-top:28px}
@media (max-width:760px){.k-notes ul{grid-template-columns:minmax(0,1fr)}}

/* times, prices and address: divider cards with a tab, equal height */
/* times, prices and address: one exercise-book sheet (hours left, prices and address right), never separate boxes */
.k-sheet{--mw:96px;--gap:32px;position:relative;display:grid;grid-template-columns:var(--mw) minmax(0,1.2fr) minmax(0,1fr);column-gap:var(--gap);padding:34px 40px 30px 0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.k-sheet::before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--mw) + var(--gap) / 2 - 1px);width:2px;background:var(--margin);opacity:.85}
.k-sheet>.k-sh{grid-column:2}
.k-sc{grid-column:3;display:flex;flex-direction:column;gap:34px;min-width:0}
.k-sheet.one .k-sc{grid-column:2/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:var(--gap)}
.k-sh{min-width:0}
.k-sh h2{display:flex;align-items:center;gap:10px;margin:0;padding-bottom:12px;border-bottom:1px solid var(--rule);font:var(--hw) calc(clamp(19px,1.6vw,22px)*var(--tune-size,1))/1.2 var(--kd);letter-spacing:-.01em}
.k-sh h2::before{content:"";flex:none;width:10px;height:10px;border-radius:calc(3px*var(--tune-radius,1));background:var(--tc)}
.k-sh table{width:100%;border-collapse:collapse;font-size:calc(16px*var(--tune-size,1))}
.k-sh td{padding:12px 0;border-bottom:1px solid var(--rule);vertical-align:baseline}
.k-sh td+td{text-align:right;padding-left:16px;font:600 17px/1.3 var(--kd);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.k-sh address{display:flex;flex-direction:column;font-style:normal;font-size:calc(16px*var(--tune-size,1))}
.k-sh address>*{padding:12px 0;border-bottom:1px solid var(--rule)}
.k-sh address a{text-decoration:none;font-weight:600}.k-sh address a:hover{text-decoration:underline}
.k-sheet .wk{padding-top:2px}.k-sheet .wk li{border-bottom-color:var(--rule)}
@media (max-width:820px){.k-sheet{--mw:56px;--gap:28px;grid-template-columns:var(--mw) minmax(0,1fr);row-gap:34px;padding:28px 20px 26px 0}.k-sc,.k-sheet.one .k-sc{grid-column:2;display:flex;flex-direction:column}}
/* week chart (hours: week) */
.wk{display:grid;grid-template-columns:3.2em minmax(0,1fr) auto;column-gap:16px;padding-top:4px}
.wk ol{grid-column:1/-1;display:grid;grid-template-columns:subgrid;list-style:none;margin:0;padding:0}
.wk li{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:calc(15px*var(--tune-size,1))}
.wk-n{font-weight:600}
.wk-bar{position:relative;height:12px;border-radius:calc(4px*var(--tune-radius,1));background:repeating-linear-gradient(90deg,var(--rule) 0 1px,transparent 1px calc(100% / 6))}
.wk-bar i{position:absolute;top:0;bottom:0;border-radius:calc(4px*var(--tune-radius,1));background:var(--tc)}
.wk-t{text-align:right;white-space:nowrap;font:600 14px/1.2 var(--kd);font-variant-numeric:tabular-nums}
.wk li.off{color:var(--mute)}
.wk-scale{grid-column:2;display:flex;justify-content:space-between;margin:8px 0 0;font-size:calc(13px*var(--tune-size,1));color:var(--mute);font-variant-numeric:tabular-nums}

/* gallery spacing */
.k-gal{margin-top:clamp(8px,1vw,16px)}  /* the gallery brings its own 64–128px padding */
/* bento: keep a one-line title clear of the photo counter that shares its grid cell (gallery gap, reported) */
@media (min-width:761px){.k-gal .bn-head{padding-right:110px}}

/* final band: a folder with its tab in the middle */
.k-final{padding-top:calc(calc(46px + clamp(80px,9vw,128px))*var(--tune-space,1))}
.k-gal + .k-final{padding-top:calc(calc(46px + clamp(8px,1vw,16px))*var(--tune-space,1))}
.k-fold{position:relative;padding:calc(clamp(56px,7vw,96px)*var(--tune-space,1)) var(--pad);background:var(--fold);color:var(--onfold);border:1px solid var(--line);border-radius:calc(28px*var(--tune-radius,1));text-align:center}
.k-fold .k-ftab{left:0;right:0;margin:0 auto;width:fit-content;padding:0 28px}
.k-fold h2{font-size:calc(clamp(36px,4.6vw,64px)*var(--tune-size,1));max-width:16ch;margin:0 auto}
.k-fold>p:not(.k-ftab){margin:20px auto 0;max-width:42ch;font-size:calc(19px*var(--tune-size,1));line-height:1.5;color:var(--mute)}
.k-fold .k-cta{justify-content:center;align-items:center;gap:16px 32px;margin-top:calc(40px*var(--tune-space,1))}
.k-fold .k-btn{background:var(--fbtn);border-color:var(--fbtn);color:var(--onfbtn)}
.k-fold .k-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.k-tel{font:600 19px/1 var(--kd);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:4px;white-space:nowrap}
@media (max-width:520px){.k-fold .k-cta{flex-direction:column}.k-fold .k-btn{width:100%}}

/* footer */
.k-foot{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px 40px;margin-top:calc(clamp(64px,7vw,96px)*var(--tune-space,1));padding-top:32px;padding-bottom:calc(44px*var(--tune-space,1));background:linear-gradient(var(--line),var(--line)) var(--pad) 0/calc(100% - 2 * var(--pad)) 1px no-repeat;font-size:calc(14px*var(--tune-size,1));color:var(--mute)}
.k-foot>div{display:flex;flex-wrap:wrap;gap:4px 18px}.k-foot b{color:var(--ink);font:600 calc(15px*var(--tune-size,1))/1.4 var(--kd)}
.flegal{display:flex;flex-wrap:wrap;gap:4px 20px;list-style:none;padding:0;margin:0}
.flegal a[aria-current]{color:var(--ink)}
.k-foot .langs{margin:0}
@media (max-width:820px){.k-foot{grid-template-columns:minmax(0,1fr)}}

/* page header (services, team): title and lede on one bottom line, on the dot grid */
.k-ph .k-wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px 64px;align-items:last baseline;padding-top:calc(clamp(48px,7vw,104px)*var(--tune-space,1));padding-bottom:calc(clamp(40px,5vw,72px)*var(--tune-space,1))}
.k-ph h1{font-size:calc(clamp(44px,6vw,86px)*var(--tune-size,1));max-width:12ch}
.k-ph p{font-size:calc(clamp(18px,1.45vw,21px)*var(--tune-size,1));line-height:1.5;color:var(--mute);max-width:36ch;justify-self:end}
@media (max-width:820px){.k-ph .k-wrap{grid-template-columns:minmax(0,1fr)}.k-ph p{justify-self:start}}
.k-band{aspect-ratio:21/8;border-radius:var(--r);overflow:hidden}
.k-band img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.k-band{aspect-ratio:4/3}}

/* services page rows */
.k-svc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px 64px;padding:calc(clamp(48px,5vw,72px)*var(--tune-space,1)) 0;border-bottom:1px solid var(--line)}
.k-svc:first-of-type{margin-top:calc(clamp(24px,3vw,40px)*var(--tune-space,1))}
.k-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;margin-bottom:18px;border-radius:calc(8px*var(--tune-radius,1));background:var(--tc);color:var(--ontab);font:600 calc(14px*var(--tune-size,1))/1.2 var(--kd)}
.k-sn h2{font-size:calc(clamp(30px,3.2vw,44px)*var(--tune-size,1))}
.k-sd>p{font-size:calc(18px*var(--tune-size,1));line-height:1.6;max-width:58ch}
.k-sd dl{margin:28px 0 0;border-top:1px solid var(--line)}
.k-sd dl div{display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr);gap:4px 24px;padding:12px 0;border-bottom:1px solid var(--line)}
.k-sd dt{color:var(--mute);font-size:calc(15px*var(--tune-size,1))}.k-sd dd{margin:0;font-weight:600}
@media (max-width:820px){.k-svc{grid-template-columns:minmax(0,1fr)}}

/* FAQ: rows that open | every answer visible */
.k-faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px 64px;padding-top:calc(clamp(72px,8vw,112px)*var(--tune-space,1))}
.k-faq>div{border-top:1px solid var(--line)}
.k-faq details{border-bottom:1px solid var(--line)}
.k-faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;cursor:pointer;list-style:none;font:600 calc(clamp(19px,1.6vw,22px)*var(--tune-size,1))/1.3 var(--kd);letter-spacing:-.01em}
.k-faq summary::-webkit-details-marker{display:none}
.k-faq summary::after{content:"";flex:none;width:32px;height:32px;border-radius:calc(9px*var(--tune-radius,1));background:linear-gradient(var(--ontab),var(--ontab)) 50%/12px 2px no-repeat var(--t1)}
.k-faq details:not([open]) summary::after{background:linear-gradient(var(--ontab),var(--ontab)) 50%/12px 2px no-repeat,linear-gradient(var(--ontab),var(--ontab)) 50%/2px 12px no-repeat var(--t1)}
.k-faq details p{padding:0 56px 24px 0;color:var(--mute);font-size:calc(17px*var(--tune-size,1));max-width:62ch}
.k-open ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.k-open li{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:calc(14px*var(--tune-radius,1))}
.k-open h3{font-size:calc(19px*var(--tune-size,1));line-height:1.3;letter-spacing:-.01em}.k-open li p{margin-top:10px;color:var(--mute);font-size:calc(16px*var(--tune-size,1))}
@media (max-width:820px){.k-faq{grid-template-columns:minmax(0,1fr)}.k-open ul{grid-template-columns:minmax(0,1fr)}}

/* team: teacher cards (big initial on the tab colour) | ruled rows */
.k-people{margin-top:calc(clamp(24px,3vw,40px)*var(--tune-space,1))}
.k-people .k-card{padding-top:28px}
.k-mono{display:grid;place-items:center;width:84px;height:84px;margin-bottom:24px;border-radius:calc(18px*var(--tune-radius,1));background:var(--tc);color:var(--ontab);font:600 calc(42px*var(--tune-size,1))/1 var(--kd)}
.k-people h2{font-size:calc(clamp(22px,1.9vw,26px)*var(--tune-size,1))}
.k-people .k-card>p{margin:10px 0 0;color:var(--mute);font-size:calc(16px*var(--tune-size,1))}
.k-roster{list-style:none;margin:calc(clamp(24px,3vw,40px)*var(--tune-space,1)) 0 0;padding:0;border-top:1px solid var(--line)}
.k-roster li{display:grid;grid-template-columns:64px minmax(0,4fr) minmax(0,6fr);gap:20px 32px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}
.k-ini{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--tc);color:var(--ontab);font:600 calc(28px*var(--tune-size,1))/1 var(--kd)}
.k-roster h2{font-size:calc(24px*var(--tune-size,1))}.k-role{margin-top:4px;color:var(--mute);font-size:calc(15px*var(--tune-size,1))}.k-roster li>p{color:var(--mute)}
@media (max-width:760px){.k-roster li{grid-template-columns:56px minmax(0,1fr)}.k-ini{width:56px;height:56px;font-size:calc(24px*var(--tune-size,1))}.k-roster li>p{grid-column:1/-1}}

/* contact: details + form | phone and email tiles */
.k-ct{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 64px;align-items:start;padding-top:calc(clamp(72px,8vw,120px)*var(--tune-space,1))}
.k-ci>p{margin-top:16px;color:var(--mute);font-size:calc(18px*var(--tune-size,1));max-width:38ch}
.k-ci dl{margin:28px 0 0;border-top:1px solid var(--line)}
.k-ci dl div{display:grid;grid-template-columns:minmax(0,8em) minmax(0,1fr);gap:4px 20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:calc(16px*var(--tune-size,1))}
.k-ci dt{color:var(--mute)}.k-ci dd{margin:0}.k-ci dd a{text-decoration:none;font-weight:600}
.k-form{display:grid;gap:18px;padding:clamp(24px,3vw,36px);background:var(--paper);border:1px solid var(--line);border-top:6px solid var(--t2);border-radius:calc(6px*var(--tune-radius,1)) calc(6px*var(--tune-radius,1)) var(--r) var(--r)}
.k-form label{display:grid;gap:8px;font-size:calc(15px*var(--tune-size,1));font-weight:600}
.k-form input,.k-form select,.k-form textarea{width:100%;min-height:52px;padding:12px 14px;border:1.5px solid var(--line);border-radius:calc(10px*var(--tune-radius,1));background:var(--bg);color:var(--ink);font:400 calc(16px*var(--tune-size,1))/1.4 var(--kt)}
.k-form textarea{min-height:104px;resize:vertical}
.k-form .k-btn{justify-self:start}
.k-small{font-size:calc(14px*var(--tune-size,1));color:var(--mute)}
.k-reach{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;align-self:center}
.k-reach a{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:180px;padding:28px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line);text-decoration:none}
.k-reach a:first-child{background:var(--acc);color:var(--onacc);border-color:var(--acc)}
.k-reach span{font-size:calc(15px*var(--tune-size,1));font-weight:600}.k-reach b{font:600 calc(clamp(20px,1.7vw,28px)*var(--tune-size,1))/1.15 var(--kd);letter-spacing:-.015em;overflow-wrap:break-word;hyphens:none}
.k-reach a[href^="tel"] b{white-space:nowrap;font-size:clamp(18px,1.5vw,26px)}
.k-reach a:hover b{text-decoration:underline}
.k-legal{margin-top:calc(56px*var(--tune-space,1));font-size:calc(13px*var(--tune-size,1));color:var(--mute)}
@media (max-width:820px){.k-ct{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.k-reach{grid-template-columns:minmax(0,1fr)}.k-reach a{min-height:140px}}

/* legal pages and 404 */
.legal-page{max-width:780px;margin:0 auto;padding:calc(clamp(40px,7vw,96px)*var(--tune-space,1)) 0}
.legal-lang{font-size:calc(14px*var(--tune-size,1));color:var(--mute);margin-bottom:18px}
article.legal{font-size:calc(17px*var(--tune-size,1));line-height:1.65}
article.legal h1{font-size:calc(clamp(40px,5.4vw,72px)*var(--tune-size,1));margin-bottom:24px}
article.legal h2{font-size:calc(26px*var(--tune-size,1));margin:calc(44px*var(--tune-space,1)) 0 12px}
article.legal p,article.legal ul{margin:0 0 12px;max-width:66ch}
article.legal ul{padding-left:1.2em}
article.legal a{text-decoration-color:var(--acc);overflow-wrap:anywhere}
article.legal .legal__notice{display:inline-block;padding:8px 14px;margin-bottom:16px;border-radius:calc(9px*var(--tune-radius,1));background:var(--t1);color:var(--ontab);font-size:calc(14px*var(--tune-size,1));font-weight:600}
article.legal .legal__updated{font-size:calc(14px*var(--tune-size,1));color:var(--mute)}
article.legal dl{margin:0 0 12px;border-top:1px solid var(--line)}
article.legal dl div{display:grid;grid-template-columns:minmax(0,14em) minmax(0,1fr);gap:2px 24px;padding:10px 0;border-bottom:1px solid var(--line)}
article.legal dt{color:var(--mute);font-size:calc(14px*var(--tune-size,1));padding-top:3px}article.legal dd{margin:0;overflow-wrap:anywhere}
@media (max-width:760px){article.legal dl div{grid-template-columns:minmax(0,1fr)}}
.nf{padding:calc(clamp(48px,8vw,120px)*var(--tune-space,1)) 0 calc(clamp(40px,6vw,96px)*var(--tune-space,1))}
.nf h1{font-size:calc(clamp(48px,7vw,104px)*var(--tune-size,1));max-width:13ch;margin-bottom:24px}
.nf p{font-size:calc(19px*var(--tune-size,1));max-width:44ch;color:var(--mute)}
.nf ul{list-style:none;padding:0;margin:calc(40px*var(--tune-space,1)) 0 0;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center}
.nf .btn{display:inline-flex;align-items:center;min-height:54px;padding:0 26px;border-radius:calc(12px*var(--tune-radius,1));background:var(--acc);color:var(--onacc);font:600 calc(16px*var(--tune-size,1))/1 var(--kd);text-decoration:none}
.nf ul a:not(.btn){font-weight:600}

/* ---------- Advanced hero moment: "the bookmark comes up" ----------
   The dot paper settles, the folder slides up with its tab, the photo settles into its half, then the ribbon rises out
   of the folder's top edge (desk: unrolls down from the header line) and the term note pops last.
   Transform family and opacity only; the ribbon follows the pointer (data-tilt), so its animations fill backwards. */
@media (prefers-reduced-motion:no-preference){
/* K opts out of the shared headline word rise: the headline stays put, the ribbon is the entrance */
.k-hero .m-words .m-w{overflow:visible;padding-bottom:0;margin-bottom:0}.k-hero .m-words .m-w>span{animation:none}
.m-js .k-hero::before{animation:k-paper 1.1s var(--m-ease,cubic-bezier(.2,.7,.2,1)) backwards}
.m-js .k-folder{animation:k-up .7s cubic-bezier(.2,.75,.15,1) backwards}
.m-js .k-hf .k-ftab{animation:k-slide .55s cubic-bezier(.2,.75,.15,1) .25s backwards}
.m-js .k-fp img,.m-js .k-dp img{animation:k-settle 1.2s cubic-bezier(.2,.75,.15,1) .15s backwards}
.m-js .k-rib{animation:k-unroll .55s cubic-bezier(.3,.8,.3,1) .8s backwards}
.m-js .k-note{animation:k-pop .5s cubic-bezier(.3,1,.5,1) 1.05s backwards}
@keyframes k-paper{from{opacity:0;scale:1.04}}
@keyframes k-up{from{opacity:0;translate:0 36px}}
@keyframes k-slide{from{opacity:0;translate:-28px 0}}
@keyframes k-settle{from{opacity:0;scale:1.08}}
@keyframes k-unroll{from{scale:1 0}}
@keyframes k-pop{from{opacity:0;scale:.85}}
/* outside the hero: card tabs rise out of their cards as the cards come in; the lesson path draws itself on scroll */
.m-js .k-cards>.m-in .k-tab{animation:k-tab .5s cubic-bezier(.2,.75,.15,1) calc(var(--m-i,0) * 70ms + .2s) backwards}
@keyframes k-tab{from{opacity:0;transform:translateY(60%)}}
@supports (animation-timeline:view()){
.m-js .k-path li:not(:last-child)::before{animation:k-track linear both;animation-timeline:view();animation-range:entry 30% cover 50%}
@keyframes k-track{from{scale:0 1}}
@media (max-width:820px){.m-js .k-path li:not(:last-child)::before{animation-name:k-trackv}@keyframes k-trackv{from{scale:1 0}}}
}}
@media (min-width:1000px){.k-sec{padding-top:calc(clamp(120px,11.5vw,166px)*var(--tune-space,1))}.k-head{margin-bottom:calc(clamp(64px,6.4vw,92px)*var(--tune-space,1))}.k-path h2{margin-bottom:calc(clamp(60px,7vw,100px)*var(--tune-space,1))}.k-book li{padding:calc(clamp(28px,2.9vw,42px)*var(--tune-space,1)) 0}.k-path p{line-height:1.6;margin-top:14px}.k-path li{padding-top:calc(112px*var(--tune-space,1))}.k-sec.k-path{padding-top:calc(clamp(150px,13vw,190px)*var(--tune-space,1))}}
