/*! Alekhyam experience layer · ux-v7.css · 2026-09-24
   Loaded site-wide AFTER nav-v15.css (Header Code). Design and interaction only: no content, price, listing or
   CTA is hidden, removed or reworded. State classes come from ux-v7.js and live ONLY on <html>:
     akx (layer on) · akx-nav (page has the shared navbar) · akx-scrolled · akx-tucked · akx-hold (drawer or
     currency menu open, or the drawer closing: header stays at rest geometry) · akx-drawer-open ·
     akx-drawer-closing · akx-kbd · akx-rm (reduced motion) · akx-protected (founder-locked page: nothing runs)
   v2 = v1 minus its measured regressions (research/implementation_map.md §0, R1–R13):
     - no header state on pages without the navbar (menu-OFF ad pages) or on the Course Library (html.ak-nav-on);
     - no rule moves the landing offer bar: the organic follower already pins it under whatever is painted;
     - no scroll-padding / smooth-scroll (chip landings and the library wheel handler are tuned without them);
     - drawer close = a timed <html> class (nav-v15 doctrine), never a visibility transition;
     - the 90px transparent navbar SECTION no longer swallows taps below the bar.
   Never put transform / filter / backdrop-filter / will-change on .is-topbar, its container, .is-menu or the
   section: the drawer is a position:fixed child and would re-anchor; layer promotion blurs it (nav-v15 §2, §8).
   Rollback: jobs/ux_layer_inject_2026-09-24.ts --version=7 --remove --go (or --version=2 --from=7)                                  */

/* icon tokens: layer/src/icons.py */
:root{
  --akx-i-calendar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E");
  --akx-i-play:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='12.5' rx='2.5'/%3E%3Cpath d='M10.5 8.4v4.7l4-2.35z'/%3E%3Cpath d='M8.5 20.5h7'/%3E%3C/svg%3E");
  --akx-i-gift:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='8.5' width='17' height='4' rx='1'/%3E%3Cpath d='M5 12.5V20h14v-7.5M12 8.5V20'/%3E%3Cpath d='M12 8.5C10.8 5.2 7 4.9 7 6.9S10.2 8.5 12 8.5zM12 8.5c1.2-3.3 5-3.6 5-1.6S13.8 8.5 12 8.5z'/%3E%3C/svg%3E");
  --akx-i-question:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.4 9.4a2.7 2.7 0 0 1 5.2.9c0 1.8-2.6 2.4-2.6 2.4M12 16.6h.01'/%3E%3C/svg%3E");
  --akx-i-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.9-5.2-2.7-5.2 2.7 1-5.9-4.3-4.1 5.9-.9z'/%3E%3C/svg%3E");
  --akx-i-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5.5 11.5 12 5l6.5 6.5'/%3E%3C/svg%3E");
  --akx-i-list:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6.5h11M9 12h11M9 17.5h11M4.5 6.5h.01M4.5 12h.01M4.5 17.5h.01'/%3E%3C/svg%3E");
  --akx-i-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 14.5 12 9l5.5 5.5'/%3E%3C/svg%3E");
  --akx-i-steps:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19h5v-5h5V9h6'/%3E%3Cpath d='M4 19V5'/%3E%3C/svg%3E");
  --akx-i-users:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3.5 19a5.5 5.5 0 0 1 11 0'/%3E%3Cpath d='M15.5 5.3a3 3 0 0 1 0 5.4M17.8 19a5 5 0 0 0-2.4-4.3'/%3E%3C/svg%3E");
  --akx-i-drop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5s6 6.4 6 10.5a6 6 0 0 1-12 0c0-4.1 6-10.5 6-10.5z'/%3E%3C/svg%3E");
  --akx-i-pencil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l4.2-1 10.3-10.3a2.1 2.1 0 0 0-3-3L5.2 16 4 20z'/%3E%3Cpath d='M13.5 6.5l3 3'/%3E%3C/svg%3E");
  --akx-i-smile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 14a4 4 0 0 0 7 0M9 9.5h.01M15 9.5h.01'/%3E%3C/svg%3E");
  --akx-i-userplus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='8' r='3.4'/%3E%3Cpath d='M4 20a6 6 0 0 1 12 0M18.5 8v6M15.5 11h6'/%3E%3C/svg%3E");
  --akx-i-card:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2.5'/%3E%3Cpath d='M3 10h18M7 15h3'/%3E%3C/svg%3E");
  --akx-i-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
  --akx-i-palette:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5a8.5 8.5 0 1 0 0 17c1.2 0 1.8-.8 1.8-1.7 0-1.2-1-1.6-1-2.7 0-1 .8-1.6 1.8-1.6h2.1a3.8 3.8 0 0 0 3.8-3.8c0-4-3.8-7.2-8.5-7.2z'/%3E%3Cpath d='M7.6 11.6h.01M9.6 7.6h.01M14.4 7.6h.01'/%3E%3C/svg%3E");
  --akx-i-award:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5'/%3E%3Cpath d='M8.8 13l-1.3 7 4.5-2.4 4.5 2.4-1.3-7'/%3E%3C/svg%3E");
  --akx-i-refund:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14 4 9l5-5'/%3E%3Cpath d='M4 9h10.5a5.5 5.5 0 0 1 0 11H11'/%3E%3C/svg%3E");
  --akx-i-globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E");
  --akx-i-playc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M10 8.8v6.4l5.2-3.2z'/%3E%3C/svg%3E");
  --akx-i-x:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 6.5l11 11M17.5 6.5l-11 11'/%3E%3C/svg%3E");
  --akx-i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --akx-i-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2.5'/%3E%3Cpath d='M3.8 7l8.2 6 8.2-6'/%3E%3C/svg%3E");
  --akx-i-ext:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4.5h5.5V10M19.5 4.5 11 13M17 13.5v4a2 2 0 0 1-2 2H6.5a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E");
  --akx-i-book:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.6C10.3 5.3 7.8 4.8 4 5v13c3.8-.2 6.3.3 8 1.6 1.7-1.3 4.2-1.8 8-1.6V5c-3.8-.2-6.3.3-8 1.6z'/%3E%3Cpath d='M12 6.6v13'/%3E%3C/svg%3E");
  --akx-i-chevu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1612' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 14.5 12 9l5.5 5.5'/%3E%3C/svg%3E");
  --akx-i-chevd:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1612' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 9.5 12 15l5.5-5.5'/%3E%3C/svg%3E");
}


:root{
  --akx-ease-out: cubic-bezier(.22,.8,.2,1);     /* decelerate: things arriving */
  --akx-ease-in: cubic-bezier(.4,0,.8,.3);       /* accelerate: things leaving */
  --akx-ease-std: cubic-bezier(.3,.7,.3,1);
  --akx-base: 240ms;
  --akx-slow: 380ms;
  --akx-wine: #7A2436;
  --akx-hair: rgba(28,22,18,.08);
}

/* ── 1 · Landing sticky mini-logo → the tile alone ─────────────────────────────────────────────────
   Founder 24-Sep: "do the tile-only mark on the landing sticky logos". Shows on the menu-OFF landing pages (on
   the organic ones the template hides its own brand). The <img> keeps its src, srcset, alt and link; its bitmap
   is pushed out of its own box and the approved tile (vector, crisp at any density) is painted in its place.
   32px = BRAND_ASSETS_CURRENT rule 4 (small logo minimum 32px height).
   (1,3,1)+ !important beats every page's `#akrw-hero-v20 .akrw-top-sticky-logo` (1,1,0) !important.
   The founder-locked 3-day page (ACTIVE_MANUAL_PAGE_PROTECTIONS.md) is excluded in pure CSS, so there is no
   flash before the script runs; browsers without :has() drop the whole rule and keep today's lockup.        */
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-top-sticky-cta .akrw-top-sticky-brand > img.akrw-top-sticky-logo{
  width:32px !important;
  height:32px !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:none !important;
  object-position:-9999px -9999px !important;
  background:url("https://cdn.alekhyam.in/landing-pages/shared-common-assets/images/brand-assets/alekhyam-c/alekhyam-c-tile-oxblood.svg") left center / contain no-repeat !important;
}

/* ── 2 · Quiet affordances (zero specificity where a page may have its own opinion) ─────────────── */
html.akx-kbd a:focus-visible, html.akx-kbd button:focus-visible, html.akx-kbd summary:focus-visible,
html.akx-kbd [tabindex]:focus-visible, html.akx-kbd input:focus-visible, html.akx-kbd select:focus-visible{
  outline:2px solid var(--akx-wine) !important;
  outline-offset:3px !important;
}
:where(html.akx) :where(a, button, summary){ -webkit-tap-highlight-color:rgba(122,36,54,.10); }
:where(html.akx) ::selection{ background:rgba(122,36,54,.16); }

/* ── 3 · The header quiets down on scroll (phones and tablets, pages with the shared navbar) ──────────
   At rest: nav-v15's solid paper bar, 77px. Once scrolled it gets quieter, never louder:
     • the shadow becomes a hairline;
     • the bar AND its container compact 77→60px together (the platform's own .shrink is 70px) and the logo and
       currency pill settle (transform on the logo CELL and .akcur only — both already transformed);
     • on long sales pages that dock their own booking bar (organic course pages), reading downwards hands the top
       over to that bar: one sticky bar at a time (Apple/Adobe product pages). 40px of deliberate upward travel, the
       top of the page, or any in-page jump brings the header back. Everywhere else the header never leaves; it only
       quiets (4 of 6 premium references never hide a global bar: research/references/design_references.md §1a).
   The 90px transparent navbar section stays put, so it stops taking taps; only the bar itself does (R3).    */
html.akx-nav:not(.ak-nav-on) .is-wrapper > .is-section-navbar{ pointer-events:none !important; }
html.akx-nav:not(.ak-nav-on) .is-wrapper > .is-section-navbar .is-topbar{ pointer-events:auto !important; }

@media (max-width:1024px){
  html.akx-nav:not(.ak-nav-on):not(.akx-rm) .is-topbar{
    transition:top var(--akx-slow) var(--akx-ease-out), height var(--akx-base) var(--akx-ease-std),
               box-shadow var(--akx-base) var(--akx-ease-std) !important;
  }
  html.akx-nav:not(.ak-nav-on):not(.akx-rm) .is-topbar .is-topbar-container{
    transition:height var(--akx-base) var(--akx-ease-std);
  }
  html.akx-nav:not(.ak-nav-on):not(.akx-rm) .is-topbar .is-topbar-logo{
    transition:transform var(--akx-base) var(--akx-ease-std), height var(--akx-base) var(--akx-ease-std) !important;
  }
  html.akx-nav:not(.ak-nav-on):not(.akx-rm) .is-topbar .akcur{
    transition:transform var(--akx-base) var(--akx-ease-std);
  }
  html.akx-nav:not(.ak-nav-on) .is-topbar .akcur{ transform-origin:100% 50%; }

  html.akx-nav.akx-scrolled:not(.ak-nav-on) .is-topbar{
    box-shadow:0 1px 0 var(--akx-hair) !important;
  }
  html.akx-nav.akx-scrolled:not(.ak-nav-on):not(.akx-hold) .is-topbar,
  html.akx-nav.akx-scrolled:not(.ak-nav-on):not(.akx-hold) .is-topbar .is-topbar-container{
    height:60px !important;
  }
  html.akx-nav.akx-scrolled:not(.ak-nav-on):not(.akx-hold) .is-topbar .is-topbar-logo{
    height:60px !important;
    transform:translateX(-50%) scale(.86) !important;
  }
  html.akx-nav.akx-scrolled:not(.ak-nav-on):not(.akx-hold) .is-topbar .akcur{
    transform:translateY(-50%) scale(.84) !important;
  }
  html.akx-nav.akx-tucked:not(.ak-nav-on):not(.akx-hold) .is-topbar{
    top:-66px !important;
  }
  html.akx-nav.akx-tucked:not(.ak-nav-on):not(.akx-hold):not(.akx-rm) .is-topbar{
    transition:top var(--akx-base) var(--akx-ease-in), height var(--akx-base) var(--akx-ease-std),
               box-shadow var(--akx-base) var(--akx-ease-std) !important;
  }
}

/* ── 4 · The drawer's own motion ──────────────────────────────────────────────────────────────────────
   nav-v15 parks the full-width drawer at left:-1000px under the platform's generic `.3s` ease: on a 390px phone
   ~60% of that tween happens off-screen, so the panel seems to wait, then snap. Parked at -100% the whole slide
   is visible; arrival decelerates (380ms), departure accelerates (260ms). Only `left` moves. Not !important, so
   the platform's inline `transition:none` still wins on resize, as it intends.
   Closing: the platform hides the list the instant the toggle loses .active (nav-v15 v8-8), which slid a blank
   sheet across the page. ux-v7.js holds `akx-drawer-closing` on <html> for the close duration: the list stays
   visible and the wordmark rides out with its panel, then the class goes and v8-8 takes over again. Timers, not
   transitions, decide visibility (SOP 44 §6 trap 3). The ::before below mirrors nav-v15 :104-115 + v15.       */
@media (max-width:1024px){
  html.akx-nav:not(.akx-rm) .is-topbar .is-menu{
    left:-100%;
    transition:left 260ms var(--akx-ease-in);
  }
  html.akx-nav:not(.akx-rm) .is-topbar #is-menu-toggle.active ~ .is-menu{
    left:0;
    transition:left var(--akx-slow) var(--akx-ease-out);
  }
  html.akx-drawer-closing .is-topbar #is-menu-toggle:not(.active) ~ .is-menu > ul.is-menu-links{
    visibility:visible !important;
  }
  html.akx-drawer-closing .is-topbar #is-menu-toggle:not(.active) ~ .is-menu::before{
    content:"";
    position:absolute;
    top:14px;
    left:50%;
    margin-left:-94px;
    width:188px;
    height:50px;
    background:url("https://cdn.edbound.app/public/72bb05dd-094c-49f5-b52d-7e07659be3e0/websitelogo/23092026/dyqly.png") no-repeat 50% 50%;
    background-size:188px 50px;
    pointer-events:none;
  }
}

/* ── 5 · Reduced motion: states still apply, movement does not ─────────────────────────────────────── */
html.akx-rm .is-topbar, html.akx-rm .is-topbar *{ transition-duration:0s !important; }

/* ══ v3 · 2026-09-24 · founder's second overnight message ═══════════════════════════════════════════
   "the inr button doesn't look well designed" · "the cross button on this top navbar on mobile needs replacement
   or visual enhancement" · "expanded menu disappears upon scrolling on it" · "the jump menu doesnt jump on the
   section focused ... the jumper menu also can have icons, and it should land focused on sections, not in mid of
   anything leaking above or below them ... make the jumper menu navigation icons and jump focus and animations
   highly intutive and designed". Icons: layer/src/icons.py (24px grid, 1.8 stroke, the course-chip language).   */

/* ── 6 · The open drawer holds the page still ──────────────────────────────────────────────────────────
   The scroller on this site is <html>, not <body>; the platform only locks body. A swipe on a drawer whose rows
   fit the screen therefore scrolled the page behind it, and the Header Code close-on-scroll script then shut the
   drawer after 10px: the menu "disappeared upon scrolling on it". With the page held, gestures stay in the menu. */
@media (max-width:1024px){
  html.akx-drawer-open, html.akx-drawer-open body{ overflow:hidden !important; overscroll-behavior:none !important; }
  html.akx-nav .is-topbar .is-menu{ overscroll-behavior:contain; }
}

/* ── 7 · The drawer's × ───────────────────────────────────────────────────────────────────────────────
   Same 44px target and position (nav-v15 §2e), quieter drawing: the shadowed disc becomes a hairline ring inside a
   transparent 2px edge, and the two strokes shorten to an 18px mark in ink. The morph takes 240ms on the standard
   curve instead of the platform's generic .4s, and the ring settles in once. Nothing here transforms an ancestor of
   the fixed drawer (the ::before and the .line spans are leaves).                                              */
@media (max-width:1024px){
  html.akx-nav .is-topbar #is-menu-toggle .line{ background:#1C1612 !important; }
  html.akx-nav:not(.akx-rm) .is-topbar #is-menu-toggle .line{
    transition:transform 240ms cubic-bezier(.4,0,.2,1), opacity 160ms linear !important;
  }
  html.akx-nav .is-topbar #is-menu-toggle.active .line-1{ transform:translateY(7px) rotate(45deg) scaleX(.72) !important; }
  html.akx-nav .is-topbar #is-menu-toggle.active .line-3{ transform:translateY(-7px) rotate(-45deg) scaleX(.72) !important; }
  html.akx-nav .is-topbar #is-menu-toggle.active::before{
    border:2px solid transparent !important;
    background:#FBF7F2 padding-box !important;
    box-shadow:inset 0 0 0 1px rgba(28,22,18,.14) !important;
  }
  html.akx-nav:not(.akx-rm) .is-topbar #is-menu-toggle.active::before{ animation:akx-ring-in 260ms cubic-bezier(.22,.61,.36,1); }
}
@keyframes akx-ring-in{ from{ opacity:0; transform:scale(.8); } to{ opacity:1; transform:none; } }

/* ── 8 · The currency control ─────────────────────────────────────────────────────────────────────────
   The runtime styles it as a white 71×52 stadium (12.5px bold, min-height 40 + padding) sitting on the cream bar.
   Here it becomes a 34px hairline pill in the bar's own paper, 13px medium, with a finer chevron that turns when
   open, a 44px touch target, and a paper menu with 44px rows and a check on the current currency. The runtime's
   <style data-akcur> is injected after this sheet, so each rule carries html.akx for specificity.               */
html.akx .is-topbar .akcur summary{
  box-sizing:border-box !important;
  position:relative !important;
  min-height:0 !important;
  height:34px !important;
  padding:0 11px 0 12px !important;
  gap:7px !important;
  background:transparent !important;
  border:1px solid rgba(28,22,18,.16) !important;
  border-radius:999px !important;
  color:#1C1612 !important;
  font:600 13px/1 Manrope, system-ui, -apple-system, sans-serif !important;
  letter-spacing:.01em !important;
  transition:border-color 160ms ease, color 160ms ease, background-color 160ms ease !important;
}
html.akx .is-topbar .akcur summary::before{ content:""; position:absolute; inset:-6px -4px; }
html.akx .is-topbar .akcur summary::after{
  width:6px !important; height:6px !important; margin:0 !important;
  border-right-width:1.5px !important; border-bottom-width:1.5px !important;
  transform:translateY(-2px) rotate(45deg) !important;
  transition:transform 200ms cubic-bezier(.4,0,.2,1) !important;
}
html.akx .is-topbar .akcur[open] summary::after{ transform:translateY(1px) rotate(-135deg) !important; }
html.akx .is-topbar .akcur[open] summary,
html.akx .is-topbar .akcur summary:hover{
  border-color:rgba(122,36,54,.38) !important; color:#7A2436 !important; background:rgba(122,36,54,.04) !important;
}
html.akx .is-topbar .akcur-menu{
  min-width:232px !important; padding:6px !important; gap:0 !important;
  background:#FBF7F2 !important; border:1px solid rgba(28,22,18,.10) !important; border-radius:16px !important;
  box-shadow:0 1px 2px rgba(28,22,18,.06), 0 16px 40px rgba(28,22,18,.16) !important;
  transform-origin:100% 0;
}
html.akx:not(.akx-rm) .is-topbar .akcur[open] .akcur-menu{ animation:akx-pop-down 180ms cubic-bezier(.22,.61,.36,1); }
html.akx .is-topbar .akcur-item{
  box-sizing:border-box !important; min-height:44px !important; padding:0 12px !important; gap:12px !important;
  justify-content:space-between !important; border-radius:10px !important;
  font:500 14px/20px Manrope, system-ui, -apple-system, sans-serif !important; color:#3C332D !important;
}
html.akx .is-topbar .akcur-item:hover{ background:rgba(122,36,54,.06) !important; color:#7A2436 !important; }
html.akx .is-topbar .akcur-item[aria-current="true"]{ background:transparent !important; color:#7A2436 !important; font-weight:600 !important; }
html.akx .is-topbar .akcur-item[aria-current="true"]::after{
  content:""; width:16px; height:16px; flex:0 0 16px; background:currentColor;
  -webkit-mask:var(--akx-i-check) center / contain no-repeat; mask:var(--akx-i-check) center / contain no-repeat;
}
@keyframes akx-pop-down{ from{ opacity:0; transform:translateY(-4px) scale(.98); } to{ opacity:1; transform:none; } }

/* ── 9 · "On this page" jump menus ──────────────────────────────────────────────────────────────────
   Three markups share one look: site chips (#akmn-home/-faq/-reviews: .akmn-btn/.akmn-list/.akmn-close),
   section navs (#aklw-/#akrc-mininav: .*-mininav-btn/-list/-close) and the 80 course chips (#akmn-course, which
   already carry icons and currency pills). Button: a 44px paper pill with a list icon and a chevron that turns
   when open (the DOM text stays for screen readers; the drawn label has empty alt text). List: a paper card that
   rises 6px into place, 44px rows each with its section's icon, the current section tinted (ux-v3.js scroll-spy).
   The dismiss × moves beside the pill instead of on its corner (audit B8: 20×20, overlapping the pill by 11px).  */
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-btn,
html.akx #aklw-mininav .aklw-mininav-btn, html.akx #akrc-mininav .akrc-mininav-btn,
html.akx #akmn-course .akmn-course-btn{
  box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; gap:0 !important;
  height:44px !important; min-height:44px !important; padding:0 15px 0 14px !important;
  border-radius:999px !important; border:1px solid rgba(28,22,18,.10) !important;
  background:rgba(251,247,242,.97) !important; color:#1C1612 !important;
  box-shadow:0 1px 2px rgba(28,22,18,.06), 0 10px 28px rgba(28,22,18,.12) !important;
  font-size:0 !important; line-height:0 !important; letter-spacing:0 !important;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-btn::before,
html.akx #aklw-mininav .aklw-mininav-btn::before, html.akx #akrc-mininav .akrc-mininav-btn::before,
html.akx #akmn-course .akmn-course-btn::before{
  content:""; width:18px; height:18px; flex:0 0 18px; background:currentColor;
  -webkit-mask:var(--akx-i-list) center / contain no-repeat; mask:var(--akx-i-list) center / contain no-repeat;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-btn::after,
html.akx #aklw-mininav .aklw-mininav-btn::after, html.akx #akrc-mininav .akrc-mininav-btn::after,
html.akx #akmn-course .akmn-course-btn::after{
  content:"On this page";
  content:"On this page" / "";
  margin-left:9px; padding-right:20px;
  font:600 14px/20px Manrope, system-ui, -apple-system, sans-serif; letter-spacing:.005em; color:#1C1612;
  background:var(--akx-i-chevu) right center / 12px 12px no-repeat;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews).is-open .akmn-btn::after,
html.akx #aklw-mininav.is-open .aklw-mininav-btn::after, html.akx #akrc-mininav.is-open .akrc-mininav-btn::after,
html.akx #akmn-course.is-open .akmn-course-btn::after,
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-btn[aria-expanded="true"]::after,
html.akx #aklw-mininav .aklw-mininav-btn[aria-expanded="true"]::after,
html.akx #akrc-mininav .akrc-mininav-btn[aria-expanded="true"]::after,
html.akx #akmn-course .akmn-course-btn[aria-expanded="true"]::after{
  background-image:var(--akx-i-chevd);
}

/* the card */
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-list,
html.akx #aklw-mininav .aklw-mininav-list, html.akx #akrc-mininav .akrc-mininav-list,
html.akx #akmn-course .akmn-course-list{
  top:auto !important; bottom:calc(100% + 10px) !important; right:0 !important; left:auto !important;
  box-sizing:border-box !important; min-width:252px !important; padding:6px !important;
  background:#FBF7F2 !important; border:1px solid rgba(28,22,18,.10) !important; border-radius:18px !important;
  box-shadow:0 1px 2px rgba(28,22,18,.06), 0 18px 44px rgba(28,22,18,.16) !important;
  transform-origin:100% 100%;
}
html.akx:not(.akx-rm) :is(#akmn-home, #akmn-faq, #akmn-reviews, #aklw-mininav, #akrc-mininav, #akmn-course).is-open :is(.akmn-list, .aklw-mininav-list, .akrc-mininav-list, .akmn-course-list){
  animation:akx-pop-up 200ms cubic-bezier(.22,.61,.36,1);
}
@keyframes akx-pop-up{ from{ opacity:0; transform:translateY(6px) scale(.98); } to{ opacity:1; transform:none; } }

/* rows (site chips + section navs; course rows keep their own inline icons) */
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-list > a,
html.akx #aklw-mininav .aklw-mininav-list > a, html.akx #akrc-mininav .akrc-mininav-list > a{
  box-sizing:border-box !important; display:flex !important; align-items:center !important; gap:12px !important;
  min-height:44px !important; padding:0 12px !important; border-radius:12px !important;
  font:500 15px/20px Manrope, system-ui, -apple-system, sans-serif !important; color:#3C332D !important;
  text-decoration:none !important; background:transparent !important;
  transition:background-color 120ms ease, color 120ms ease !important;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-list > a::before,
html.akx #aklw-mininav .aklw-mininav-list > a::before, html.akx #akrc-mininav .akrc-mininav-list > a::before{
  content:""; width:18px; height:18px; flex:0 0 18px; background:currentColor; opacity:.7;
  -webkit-mask:var(--akx-ico, var(--akx-i-list)) center / contain no-repeat; mask:var(--akx-ico, var(--akx-i-list)) center / contain no-repeat;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-list > a:hover,
html.akx #aklw-mininav .aklw-mininav-list > a:hover, html.akx #akrc-mininav .akrc-mininav-list > a:hover{
  background:rgba(122,36,54,.06) !important; color:#7A2436 !important;
}
/* the back-to-top row sits apart from the sections: an inset hairline above it */
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews, #aklw-mininav, #akrc-mininav) :is(.akmn-list, .aklw-mininav-list, .akrc-mininav-list) > a[data-akmn-top]{
  position:relative !important; margin-top:9px !important;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews, #aklw-mininav, #akrc-mininav) :is(.akmn-list, .aklw-mininav-list, .akrc-mininav-list) > a[data-akmn-top]::after{
  content:""; position:absolute; left:12px; right:12px; top:-5px; height:1px; background:rgba(28,22,18,.09); pointer-events:none;
}

/* one icon per destination */
#akmn-home a[href$="__workshops"]{ --akx-ico:var(--akx-i-calendar); }
#akmn-home a[href$="__courses"]{ --akx-ico:var(--akx-i-play); }
#akmn-home a[href$="__free"]{ --akx-ico:var(--akx-i-gift); }
#akmn-home a[href$="faq-section"]{ --akx-ico:var(--akx-i-question); }
#akmn-faq a[href$="-joining"]{ --akx-ico:var(--akx-i-userplus); }
#akmn-faq a[href$="-fees"]{ --akx-ico:var(--akx-i-card); }
#akmn-faq a[href$="-schedules"]{ --akx-ico:var(--akx-i-clock); }
#akmn-faq a[href$="-materials"]{ --akx-ico:var(--akx-i-palette); }
#akmn-faq a[href$="-feedback"]{ --akx-ico:var(--akx-i-award); }
#akmn-faq a[href$="-refunds"]{ --akx-ico:var(--akx-i-refund); }
#akmn-faq a[href$="-kids"]{ --akx-ico:var(--akx-i-globe); }
#akmn-reviews a[href$="-udemy"]{ --akx-ico:var(--akx-i-playc); }
#akmn-reviews a[href$="-community"]{ --akx-ico:var(--akx-i-users); }
#akmn-reviews a[href$="-google"]{ --akx-ico:var(--akx-i-star); }
#aklw-mininav a[href^="#aklw-"]{ --akx-ico:var(--akx-i-calendar); }
#aklw-mininav a[href$="-how"], #akrc-mininav a[href$="-how"]{ --akx-ico:var(--akx-i-steps); }
#aklw-mininav a[href$="-reviews"], #akrc-mininav a[href$="-reviews"]{ --akx-ico:var(--akx-i-star); }
#aklw-mininav a[href$="-faq"], #akrc-mininav a[href$="-faq"]{ --akx-ico:var(--akx-i-question); }
#akrc-mininav a[href*="watercolour"]{ --akx-ico:var(--akx-i-drop); }
#akrc-mininav a[href*="sketch"]{ --akx-ico:var(--akx-i-pencil); }
#akrc-mininav a[href*="kids"]{ --akx-ico:var(--akx-i-smile); }
:is(.akmn-list, .aklw-mininav-list, .akrc-mininav-list) > a[data-akmn-top]{ --akx-ico:var(--akx-i-up); }

/* dismiss ×: beside the pill, 32px drawn, 44px touch */
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-close,
html.akx #aklw-mininav .aklw-mininav-close, html.akx #akrc-mininav .akrc-mininav-close,
html.akx #akmn-course .akmn-course-close{
  position:absolute !important; top:50% !important; bottom:auto !important; left:auto !important; right:calc(100% + 8px) !important;
  box-sizing:border-box !important; width:32px !important; height:32px !important; min-width:0 !important; min-height:0 !important;
  margin:-16px 0 0 !important; padding:0 !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  border-radius:50% !important; border:1px solid rgba(28,22,18,.10) !important;
  background:rgba(251,247,242,.97) !important; color:#6B5F56 !important;
  box-shadow:0 1px 2px rgba(28,22,18,.06), 0 6px 16px rgba(28,22,18,.10) !important;
  font-size:0 !important; line-height:0 !important;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-close::before,
html.akx #aklw-mininav .aklw-mininav-close::before, html.akx #akrc-mininav .akrc-mininav-close::before,
html.akx #akmn-course .akmn-course-close::before{
  content:""; width:12px; height:12px; background:currentColor;
  -webkit-mask:var(--akx-i-x) center / contain no-repeat; mask:var(--akx-i-x) center / contain no-repeat;
}
html.akx :is(#akmn-home, #akmn-faq, #akmn-reviews) .akmn-close::after,
html.akx #aklw-mininav .aklw-mininav-close::after, html.akx #akrc-mininav .akrc-mininav-close::after,
html.akx #akmn-course .akmn-course-close::after{ content:""; position:absolute; inset:-6px; }

/* ── 10 · Jumps land on the section, not in the middle of the last one ─────────────────────────────────
   Every "On this page" jump uses scrollIntoView, which honours scroll-margin-top. The pasted margins (110/104/96)
   were tuned for the 77px bar at rest, so 33–50px of the previous section showed above each landing. Sections now
   meet the bar exactly (60px compact on phones/tablets, 70px on desktop); card and group targets keep 12px air.
   Course pages (#akrw-…) glide with their own offsets and are untouched; the library is excluded.              */
@media (max-width:1024px){
  html.akx-nav:not(.ak-nav-on) [id^="akh-home-v2__"]{ scroll-margin-top:60px !important; }
  html.akx-nav:not(.ak-nav-on) :is([id^="akfaq-g-"], [id^="aklw-"], [id^="akrc-"], [id^="akh-reviews-"]){ scroll-margin-top:72px !important; }
}
@media (min-width:1025px){
  html.akx-nav:not(.ak-nav-on) [id^="akh-home-v2__"]{ scroll-margin-top:70px !important; }
  html.akx-nav:not(.ak-nav-on) :is([id^="akfaq-g-"], [id^="aklw-"], [id^="akrc-"], [id^="akh-reviews-"]){ scroll-margin-top:82px !important; }
}

/* ── 11 · Reduced motion covers the new pieces too ─────────────────────────────────────────────────── */
html.akx-rm :is(.akcur, #akmn-home, #akmn-faq, #akmn-reviews, #aklw-mininav, #akrc-mininav, #akmn-course),
html.akx-rm :is(.akcur, #akmn-home, #akmn-faq, #akmn-reviews, #aklw-mininav, #akrc-mininav, #akmn-course) *{
  animation:none !important; transition-duration:0s !important;
}

/* ══ v4 · 2026-09-24 ═══════════════════════════════════════════════════════════════════════════════════
   ── 12 · "Blog" joined the About submenu tonight (jobs/navbar_blog_item_2026-09-24.ts). nav-v15 draws an icon for
   each drawer sub-row by exact href; this gives the new row the same 18px open-book mark in the same walnut.      */
@media (max-width:1024px){
  html.akx-nav .is-topbar .is-menu-links > li ul > li > a[href*="/blog/" i]::before{
    content:"" !important; display:block !important; flex:0 0 18px !important;
    width:18px !important; height:18px !important; margin-right:10px !important;
    background-color:#6E4A42 !important; opacity:1 !important;
    -webkit-mask:var(--akx-i-book) center / 18px 18px no-repeat !important;
            mask:var(--akx-i-book) center / 18px 18px no-repeat !important;
  }
}

/* ══ v5 · 2026-09-24 (morning) ═══════════════════════════════════════════════════════════════════════════════════
   ── 13 · Cache-proof ālekhyam® logo. Founder 24-Sep: "the footer has capital a logo (we need small italic a now)".
   The logo files the footer (every page) and ~40 landing pages point at were replaced IN PLACE with the v5.1
   Option C lockup overnight, but they are served "immutable", so a browser that already had them keeps showing the
   old capital-A logo for up to a year (the CDN itself serves C). Each <img> keeps its src, srcset, alt, link and
   box; its bitmap is pushed out of its own box and the approved C lockup (vector, crisp at any density) is painted
   from a NEW file in its place. Only the files replaced in place are matched. The landing sticky mini-logo keeps
   its tile (rule 1 wins on specificity). Remove this block once every page points at the alekhyam-c/ files.       */
img[src*="brand-assets/alekhyam_logo_horizontal_transparent__"],
img[srcset*="brand-assets/alekhyam_logo_horizontal_transparent__"],
img[src*="brand-assets/alekhyam_logo_small_oxblood_v5__"],
img[src$="/images/alekhyam-logo.webp"]{
  object-position:-99999px -99999px !important;
  background:url("https://cdn.alekhyam.in/landing-pages/shared-common-assets/images/brand-assets/alekhyam-c/alekhyam-c-small-oxblood.svg") center / contain no-repeat !important;
}
.ak-ft-brand img.ak-ft-logo{ background-position:left center !important; }

/* ══ v6 · 2026-09-24 (morning) ═══════════════════════════════════════════════════════════════════════════════════
   ── 14 · Course Library: the site bar and the filter toolbar move as ONE piece. Founder 24-Sep: "some glitches in
   the top menu hide and reveal on course library page on mobile, something flashes for milliseconds ... the top nav
   bar menu show and reveal should be great designed flawless animations not sudden childish". Measured: on reveal
   the toolbar jumped 70px in one frame and the bar faded in over the page for ~180ms, so the page's own pills and
   headings showed through it. ux-v6.js now slides both by the same distance on the same curve (html.akx-flip is set
   only when that script is running); here the bar's fade and the toolbar's (never-running) transform transition are
   switched off so nothing competes with it.                                                                       */
html.akx.akx-flip.ak-nav-on .is-wrapper > .is-section-navbar{ transition:none !important; }
html.akx.akx-flip.ak-nav-on.ak-ux-anim #ak-library-v2 .ak-lib__toolbar,
html.akx.akx-flip.ak-nav-on.ak-ux-anim #ak-library-v2 .ak-lib__toolbar.is-fixed{
  transition:box-shadow .32s ease, background-color .32s ease, border-color .32s ease !important;
}

/* ── 15 · Sticky booking bar (course and workshop pages): the value line ("₹12,000 · 30+ hours · 14 guided
   paintings") scrolls sideways when it does not fit beside the button, and was cut off mid-word with no sign that
   there was more. Founder 24-Sep: "looks broken without a cue and at first sight". It now dissolves into the edge it
   continues past (right while there is more, left once scrolled), and ux-v6.js gives it one gentle peek the first
   time the bar appears. State lives on <html> (akx-sx*), set by ux-v6.js.                                        */
html.akx.akx-sx #akrw-hero-v20 .akrw-top-sticky-offer{
  -webkit-mask-image:linear-gradient(90deg, #000 0, #000 calc(100% - 34px), transparent 100%);
          mask-image:linear-gradient(90deg, #000 0, #000 calc(100% - 34px), transparent 100%);
  scrollbar-width:none;
}
html.akx.akx-sx.akx-sx-moved #akrw-hero-v20 .akrw-top-sticky-offer{
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 34px), transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 34px), transparent 100%);
}
html.akx.akx-sx.akx-sx-moved.akx-sx-end #akrw-hero-v20 .akrw-top-sticky-offer{
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 22px, #000 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 22px, #000 100%);
}
html.akx #akrw-hero-v20 .akrw-top-sticky-offer::-webkit-scrollbar{ display:none; }

/* ══ v7 · 2026-09-25 · ONE site-wide layer version for the 25-Sep upgrade (founder P0 bugs + audit items) ═════════════
   Sections: M menus (one panel at a time) · L Course Library (closing band, one-card row, opaque toolbar) ·
   O overlays (chip + help launcher yield to every modal; lightbox over the header) · T Tamboora learner posts ·
   A audit items C01-C06, C08-C15, C17-C21 + J08 laptop tuck. Taste items C10 step B and C16 are NOT in this file
   (preview only: site_upgrade_2026-09-25/build/layer/taste_preview.css). C07 is superseded by O; C22 not built.
   Contract (implementation_map §7): state on <html> only (akx-*), nothing written inside .is-wrapper, no transform/
   filter/perspective/contain/will-change/backdrop-filter on the §7.4 #3 elements, no global scroll-behavior:smooth or
   scroll-padding-top. Sources and verdicts: site_upgrade_2026-09-25/build/layer/RESULT.json.
   Rollback: jobs/ux_layer_inject_2026-09-24.ts --version=6 --from=7 --go                                          */

/* ══ v7 · M · desktop menus (founder P0 menus F1-css) ══ */

/* ══ v7 · 2026-09-25 · desktop menus: one panel at a time (pairs with the v7 block of ux-v7.js) ═════════════════════
   Founder 25-Sep: "THE MENUS REVEAL IS BUGGY, IT STACKS UP, GHOSTS, DONT CLOSE". From 1025px up, a desktop panel is
   visible ONLY when <html> names it (akx-menu-i<N>, set by ux-v7.js); the platform's ul.active and nav-v17's
   li:focus-within no longer decide. Motion follows DESIGN_BRIEF §2: open = surface 240 ms on the enter curve (fade +
   6 px settle), close = 160 ms on the exit curve with visibility switched at the END, and a switch (akx-menu-sw) drops
   the outgoing panel in the same frame while the incoming one only fades 120 ms, so no frame paints two panels.
   Only the panel <ul> moves (opacity/transform); nothing on .is-topbar, its container, .is-menu or the section.
   Reduced motion: every change is instant. The drawer (≤1024px) is untouched. Rollback: ux-v6.css. */
@media (min-width:1025px){
  html.akx.akx-dd .is-topbar .is-menu > ul.is-menu-links > li > ul{
    opacity:0 !important; visibility:hidden !important; pointer-events:none !important; transform:none !important;
    transition:none !important;
  }
  html.akx.akx-dd.akx-menu-i1 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(1) > ul,
  html.akx.akx-dd.akx-menu-i2 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(2) > ul,
  html.akx.akx-dd.akx-menu-i3 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(3) > ul,
  html.akx.akx-dd.akx-menu-i4 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(4) > ul,
  html.akx.akx-dd.akx-menu-i5 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(5) > ul,
  html.akx.akx-dd.akx-menu-i6 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(6) > ul,
  html.akx.akx-dd.akx-menu-i7 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(7) > ul,
  html.akx.akx-dd.akx-menu-i8 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(8) > ul,
  html.akx.akx-dd.akx-menu-i9 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(9) > ul,
  html.akx.akx-dd.akx-menu-i10 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(10) > ul,
  html.akx.akx-dd.akx-menu-i11 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(11) > ul,
  html.akx.akx-dd.akx-menu-i12 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(12) > ul,
  html.akx.akx-dd.akx-menu-i13 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(13) > ul,
  html.akx.akx-dd.akx-menu-i14 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(14) > ul,
  html.akx.akx-dd.akx-menu-i15 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(15) > ul,
  html.akx.akx-dd.akx-menu-i16 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(16) > ul,
  html.akx.akx-dd.akx-menu-i17 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(17) > ul,
  html.akx.akx-dd.akx-menu-i18 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(18) > ul,
  html.akx.akx-dd.akx-menu-i19 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(19) > ul,
  html.akx.akx-dd.akx-menu-i20 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(20) > ul,
  html.akx.akx-dd.akx-menu-i21 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(21) > ul,
  html.akx.akx-dd.akx-menu-i22 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(22) > ul,
  html.akx.akx-dd.akx-menu-i23 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(23) > ul,
  html.akx.akx-dd.akx-menu-i24 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(24) > ul{
    opacity:1 !important; visibility:visible !important; pointer-events:auto !important; transform:none !important;
  }
  /* the chevron and the label follow the same state (nav-v17 keyed them on ul.active) */
  html.akx.akx-dd .is-topbar .is-menu > ul.is-menu-links > li:has(> ul) > a::after{
    transform:translateY(-2px) rotate(45deg) !important; opacity:.5 !important;
  }
  html.akx.akx-dd.akx-menu-i1 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(1) > a::after,
  html.akx.akx-dd.akx-menu-i2 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(2) > a::after,
  html.akx.akx-dd.akx-menu-i3 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(3) > a::after,
  html.akx.akx-dd.akx-menu-i4 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(4) > a::after,
  html.akx.akx-dd.akx-menu-i5 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(5) > a::after,
  html.akx.akx-dd.akx-menu-i6 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(6) > a::after,
  html.akx.akx-dd.akx-menu-i7 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(7) > a::after,
  html.akx.akx-dd.akx-menu-i8 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(8) > a::after,
  html.akx.akx-dd.akx-menu-i9 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(9) > a::after,
  html.akx.akx-dd.akx-menu-i10 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(10) > a::after,
  html.akx.akx-dd.akx-menu-i11 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(11) > a::after,
  html.akx.akx-dd.akx-menu-i12 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(12) > a::after,
  html.akx.akx-dd.akx-menu-i13 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(13) > a::after,
  html.akx.akx-dd.akx-menu-i14 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(14) > a::after,
  html.akx.akx-dd.akx-menu-i15 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(15) > a::after,
  html.akx.akx-dd.akx-menu-i16 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(16) > a::after,
  html.akx.akx-dd.akx-menu-i17 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(17) > a::after,
  html.akx.akx-dd.akx-menu-i18 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(18) > a::after,
  html.akx.akx-dd.akx-menu-i19 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(19) > a::after,
  html.akx.akx-dd.akx-menu-i20 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(20) > a::after,
  html.akx.akx-dd.akx-menu-i21 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(21) > a::after,
  html.akx.akx-dd.akx-menu-i22 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(22) > a::after,
  html.akx.akx-dd.akx-menu-i23 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(23) > a::after,
  html.akx.akx-dd.akx-menu-i24 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(24) > a::after{
    transform:translateY(1px) rotate(-135deg) !important; opacity:.9 !important;
  }
  html.akx.akx-dd.akx-menu-i1 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(1) > a,
  html.akx.akx-dd.akx-menu-i2 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(2) > a,
  html.akx.akx-dd.akx-menu-i3 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(3) > a,
  html.akx.akx-dd.akx-menu-i4 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(4) > a,
  html.akx.akx-dd.akx-menu-i5 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(5) > a,
  html.akx.akx-dd.akx-menu-i6 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(6) > a,
  html.akx.akx-dd.akx-menu-i7 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(7) > a,
  html.akx.akx-dd.akx-menu-i8 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(8) > a,
  html.akx.akx-dd.akx-menu-i9 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(9) > a,
  html.akx.akx-dd.akx-menu-i10 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(10) > a,
  html.akx.akx-dd.akx-menu-i11 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(11) > a,
  html.akx.akx-dd.akx-menu-i12 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(12) > a,
  html.akx.akx-dd.akx-menu-i13 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(13) > a,
  html.akx.akx-dd.akx-menu-i14 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(14) > a,
  html.akx.akx-dd.akx-menu-i15 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(15) > a,
  html.akx.akx-dd.akx-menu-i16 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(16) > a,
  html.akx.akx-dd.akx-menu-i17 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(17) > a,
  html.akx.akx-dd.akx-menu-i18 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(18) > a,
  html.akx.akx-dd.akx-menu-i19 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(19) > a,
  html.akx.akx-dd.akx-menu-i20 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(20) > a,
  html.akx.akx-dd.akx-menu-i21 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(21) > a,
  html.akx.akx-dd.akx-menu-i22 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(22) > a,
  html.akx.akx-dd.akx-menu-i23 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(23) > a,
  html.akx.akx-dd.akx-menu-i24 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(24) > a{
    color:#7A2436 !important;
  }
}
@media (min-width:1025px) and (prefers-reduced-motion:no-preference){
  html.akx.akx-dd .is-topbar .is-menu > ul.is-menu-links > li > ul{
    transform:translateY(-6px) !important;
    transition:opacity 160ms cubic-bezier(.4,0,1,1), transform 160ms cubic-bezier(.4,0,1,1), visibility 0s linear 160ms !important;
  }
  html.akx.akx-dd.akx-menu-i1 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(1) > ul,
  html.akx.akx-dd.akx-menu-i2 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(2) > ul,
  html.akx.akx-dd.akx-menu-i3 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(3) > ul,
  html.akx.akx-dd.akx-menu-i4 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(4) > ul,
  html.akx.akx-dd.akx-menu-i5 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(5) > ul,
  html.akx.akx-dd.akx-menu-i6 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(6) > ul,
  html.akx.akx-dd.akx-menu-i7 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(7) > ul,
  html.akx.akx-dd.akx-menu-i8 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(8) > ul,
  html.akx.akx-dd.akx-menu-i9 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(9) > ul,
  html.akx.akx-dd.akx-menu-i10 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(10) > ul,
  html.akx.akx-dd.akx-menu-i11 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(11) > ul,
  html.akx.akx-dd.akx-menu-i12 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(12) > ul,
  html.akx.akx-dd.akx-menu-i13 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(13) > ul,
  html.akx.akx-dd.akx-menu-i14 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(14) > ul,
  html.akx.akx-dd.akx-menu-i15 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(15) > ul,
  html.akx.akx-dd.akx-menu-i16 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(16) > ul,
  html.akx.akx-dd.akx-menu-i17 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(17) > ul,
  html.akx.akx-dd.akx-menu-i18 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(18) > ul,
  html.akx.akx-dd.akx-menu-i19 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(19) > ul,
  html.akx.akx-dd.akx-menu-i20 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(20) > ul,
  html.akx.akx-dd.akx-menu-i21 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(21) > ul,
  html.akx.akx-dd.akx-menu-i22 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(22) > ul,
  html.akx.akx-dd.akx-menu-i23 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(23) > ul,
  html.akx.akx-dd.akx-menu-i24 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(24) > ul{
    transform:none !important;
    transition:opacity 240ms cubic-bezier(.22,.61,.36,1), transform 240ms cubic-bezier(.22,.61,.36,1), visibility 0s linear 0s !important;
  }
  html.akx.akx-dd.akx-menu-sw .is-topbar .is-menu > ul.is-menu-links > li > ul{ transition:none !important; }
  html.akx.akx-dd.akx-menu-sw .is-topbar .is-menu > ul.is-menu-links > li:has(> ul) > a::after{ transition:none !important; }   /* no two chevrons spinning at once */
  html.akx.akx-dd.akx-menu-sw.akx-menu-i1 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(1) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i2 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(2) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i3 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(3) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i4 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(4) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i5 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(5) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i6 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(6) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i7 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(7) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i8 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(8) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i9 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(9) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i10 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(10) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i11 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(11) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i12 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(12) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i13 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(13) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i14 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(14) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i15 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(15) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i16 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(16) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i17 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(17) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i18 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(18) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i19 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(19) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i20 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(20) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i21 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(21) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i22 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(22) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i23 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(23) > ul,
  html.akx.akx-dd.akx-menu-sw.akx-menu-i24 .is-topbar .is-menu > ul.is-menu-links > li:nth-child(24) > ul{
    transition:opacity 120ms cubic-bezier(.22,.61,.36,1), visibility 0s linear 0s !important;
  }
}
/* ══ end v7 menus ═══════════════════════════════════════════════════════════════════════════════════════════════════ */

/* ══ v7 · L · Course Library (founder P0 LIB-F1, LIB-F2 with the verifier's display:none fix, LIB-F3) ══ */

/* ══ v7 · 2026-09-25 (evening) · Course Library, founder bug report 25-Sep ~19:30 IST (screens 1.webp, 2.webp) ══════
   Scope: #ak-library-v2 only, so all 7 currency twins (course-library, -usd, -eur, -gbp, -aed, -cad, -aud) share it.
   CSS only. Nothing is written inside .is-wrapper; no transform/filter/contain on the bar, drawer, section or wrapper.
   Evidence and before/after: site_upgrade_2026-09-25/audit/founder_bugs/library/. Rollback: repoint to ux-v6.     */

/* ── 16 · The closing band ("Start Free · Live Workshops"). Founder 25-Sep (1.webp): it renders "as a half-width pale
   pill container stuck to the left above the footer, a big blank gap above it". Not a phone sticky bar: it is the
   page's own closing band. Its centring and padding (.ak-cro-closing{margin:44px auto 28px;padding:26px 20px}, 0,1,0,
   page inline style) lose to the library's universal reset #ak-library-v2 *{margin:0;padding:0} (1,0,0,
   page.min.css), measured by CDP matched styles: x=0, 560 wide, margin 0, padding 0, flush on the footer. The "gap
   above" is the help block's own 80px bottom padding. Restored at (1,1,1); the help block's bottom padding is
   tightened so the help text and the band read as one close; side margins keep the band off the phone's edges.    */
html #ak-library-v2 .ak-cro-closing{
  width:calc(100% - 32px); max-width:560px; margin:8px auto 64px; padding:24px 20px;
}
html #ak-library-v2 .ak-cro-closing .ak-cro-closing-btn{ padding:14px 18px; }
html #ak-library-v2 .ak-lib__help:has(+ .ak-cro-closing){ padding-bottom:32px; }
@media (max-width:820px){ html #ak-library-v2 .ak-cro-closing{ margin-bottom:24px; } }

/* ── 17 · A row with ONE card reads as a feature, not as a gap. Founder 25-Sep (2.webp): Acrylics and "For Young
   Artists (Ages 7-16)" each hold one card at the left and leave 69-73% of the row empty at 1280-1440 (61% at
   1024, 51% at 820). When exactly one card in a grid is visible (the page hides filtered cards with an inline
   display:none, so the count follows the filters too), from 769px the card turns horizontal: artwork left, the
   same text, price and buttons right, aligned with the section title. The artwork keeps its 16:9 frame (the
   artworks run edge to edge: any side crop cuts them, e.g. the kids card's lettering), centred against the text.
   Anything after the text (a closed workshop's "See open workshops" row) stays in the text column.
   Pure :has() on the grid, no markup; browsers without :has() keep today's layout; phones keep theirs.            */
@media (min-width:769px){
  html #ak-library-v2 :is(.ak-lib__grid, .ak-lib__step-grid):has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"])):not(:has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]) ~ :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]))) { grid-template-columns:minmax(0, 940px) !important; justify-content:start !important; }
  html #ak-library-v2 :is(.ak-lib__grid, .ak-lib__step-grid):has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"])):not(:has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]) ~ :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]))) .ak-lib__card{ display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr); column-gap:10px; align-items:center; }
  html #ak-library-v2 :is(.ak-lib__grid, .ak-lib__step-grid):has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"])):not(:has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]) ~ :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]))) .ak-lib__card-img-wrap{ grid-column:1; grid-row:1 / span 2; align-self:center; }
  html #ak-library-v2 :is(.ak-lib__grid, .ak-lib__step-grid):has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"])):not(:has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]) ~ :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]))) .ak-lib__card > :not(.ak-lib__card-img-wrap){ grid-column:2; }
  html #ak-library-v2 :is(.ak-lib__grid, .ak-lib__step-grid):has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"])):not(:has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]) ~ :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]))) .ak-lib__card > :not(.ak-lib__card-img-wrap):not(.ak-lib__card-body){ padding:0 14px 10px; }
  html #ak-library-v2 :is(.ak-lib__grid, .ak-lib__step-grid):has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"])):not(:has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]) ~ :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]))) .ak-lib__card-body{ padding:18px 16px 14px 14px; }
}
@media (min-width:769px) and (max-width:1024px){
  html #ak-library-v2 :is(.ak-lib__grid, .ak-lib__step-grid):has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"])):not(:has(> :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]) ~ :is(.ak-lib__card, .ak-lib__card-step-wrap):not([style*="display: none"], [style*="display:none"]))) .ak-lib__card{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
}

/* ── 18 · No ghost at the toolbar's left. Founder 25-Sep (2.webp): "a faint blurred ghost shape at the toolbar's left"
   once the site bar tucks. It is not the logo or a shadow: the toolbar is 92% opaque paper over a 14px backdrop blur,
   so whatever scrolls under it (wine buttons, titles, card art) shows through as a smear, most visibly in its empty
   left band (desktop controls are centred). Proven by elimination (evidence/ghost/elim_d1440.json: hiding the site
   bar or the logo changes nothing; an opaque toolbar removes it) and filmed (evidence/motion/). The toolbar keeps its
   backdrop-filter, so it stays the containing block of its own fixed dropdown sheets; only its paper is opaque.   */
/* (the one opaque-toolbar rule follows this block: menus F3 = library LIB-F3, deduplicated) */


/* ══ v7 · 2026-09-25 · Course Library: the filter toolbar is solid paper, so nothing ghosts through it ══════════════
   Founder 25-Sep (screen 2, library scrolled, site bar tucked): "a faint blurred ghost shape at the toolbar's left".
   Cause (measured, ghost_toolbar.mjs): the page's own CSS makes the sticky toolbar frosted glass,
   `#ak-library-v2 .ak-lib__toolbar{background:rgba(251,248,243,.92)!important;backdrop-filter:blur(14px) saturate(1.02)!important}`,
   so card images and headings sliding under it show through as a soft smear. Same paper colour, fully opaque.
   backdrop-filter is deliberately LEFT in place: it gives the toolbar's position:fixed Medium/Subject sheets their
   containing block, and an opaque background already covers whatever it blurs. Paint only; no layout change. */
html.akx #ak-library-v2 .ak-lib__toolbar{ background:#FBF8F3 !important; }

/* ══ v7 · O · overlays (founder P0 overlays F1 + F3) ══ */

/* ── v7 · One overlay at a time: the "On this page" chip and the help launcher yield to every modal ──────────────
   Founder 25-Sep (screen 5.webp, /page/watercolour-reset-3-day-workshop): a gallery card opened as a modal and the
   "On this page" chip, its × and the help launcher stayed ON TOP of the modal's dark scrim ("cards, on this page in
   modal too").
   WHY IT HAPPENED (measured, audit/founder_bugs/overlays/raw/repro_reset_d1440.json):
     - the akrw lightbox is z-index 2200 but lives inside .is-container (position:relative; z-index:1), so page-wide it
       competes at 1;
     - the chip nav (#akmn-course, z 1950) sits directly in the page's stacking context: 1950 > 1;
     - the help launcher lives in a shadow root on <body> at z 2147483000: above everything the pages own
       (homepage art modal 3700, drawer 100000 inside the navbar's z 2).
     - on phones (measured 390 and 360) the chip's dismiss x sits exactly on the lightbox's own close button: a tap
       at the close button's centre (195,805) lands on button.akmn-course-close, hiding the chip, not the lightbox.
   Nothing told either widget that a modal was open. The pages already announce it; this block listens:
     body.akrw-modal-open (94 akrw course/workshop pages) · body.akh-home-v2__modal-open (homepage art + announcement)
     · html.akx-drawer-open / -closing (ux-v6, mirrors #is-menu-toggle.active) · body.akh-nav-open (footer runtime:
     drawer or currency menu) · html.akmn-chip-open (chips v3: the chip's own panel) · html.akx-help-open (this
     version's JS: the help panel, which lives in a shadow root CSS cannot see) · #akrw-hero-v20.akrw-nav-open (the
     booking bar's section menu) · #ak-lib-notify-modal shown (Course Library) · any native <dialog> opened modally.
   HOW: fade out 180ms on the exit curve, then visibility:hidden (no hit-testing, no Tab stop, out of the a11y tree);
   come back with a 180ms fade on the enter curve once the overlay is gone. Reduced motion: instant.
   Contract (implementation_map §7): CSS only on the chips (their own z-ladder is untouched) and on the help host,
   which is outside .is-wrapper; no transform/filter/contain on the bar, drawer or wrapper; nothing written into the
   page. The host becomes a stacking context at the launcher's own z (2147483000), so its children keep their order
   and its opacity can fade without dropping under the page mid-fade.
   Rollback: repoint the Header Code to ux-v6.css|js.                                                                */

/* the help host: a stacking context at its launcher's own height, so an opacity fade never re-orders it */
html.akx [data-akh-help-host]{ position:relative; z-index:2147483000; }

/* ── hidden states (class-driven: every runtime already sets these) ── */
html.akx.akx-drawer-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
html.akx.akx-drawer-closing :is(nav[id^="akmn-"], nav[id$="-mininav"]),
html.akx.akx-help-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
html.akx body.akh-nav-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
html.akx body.akrw-modal-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
html.akx body.akh-home-v2__modal-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
html.akx.akx-drawer-open [data-akh-help-host],
html.akx.akx-drawer-closing [data-akh-help-host],
html.akx.akmn-chip-open [data-akh-help-host],
html.akx body.akh-nav-open [data-akh-help-host],
html.akx body.akrw-modal-open [data-akh-help-host],
html.akx body.akh-home-v2__modal-open [data-akh-help-host]{
  opacity:0 !important; visibility:hidden !important; pointer-events:none !important;
}
/* ── hidden states with no class of their own (:has; kept apart so a browser without :has drops only these) ── */
html.akx:has(#akrw-hero-v20.akrw-nav-open) :is(nav[id^="akmn-"], nav[id$="-mininav"], [data-akh-help-host]){
  opacity:0 !important; visibility:hidden !important; pointer-events:none !important;
}
html.akx:has(#ak-lib-notify-modal:not([hidden])) :is(nav[id^="akmn-"], nav[id$="-mininav"], [data-akh-help-host]){
  opacity:0 !important; visibility:hidden !important; pointer-events:none !important;
}
html.akx:has(dialog:modal) :is(nav[id^="akmn-"], nav[id$="-mininav"], [data-akh-help-host]){
  opacity:0 !important; visibility:hidden !important; pointer-events:none !important;
}
/* the section menus on Live Workshops / Self-Paced Courses (#aklw-, #akrc-mininav) are not run by chips v3, so their
   open state never sets html.akmn-chip-open: while one is open the help launcher steps aside here instead */
html.akx:has(nav[id$="-mininav"].is-open) [data-akh-help-host]{
  opacity:0 !important; visibility:hidden !important; pointer-events:none !important;
}

/* ── motion: 180ms fade; visibility flips at the END of a fade-out and at the START of a fade-in ── */
@media (prefers-reduced-motion: no-preference){
  html.akx :is(nav[id^="akmn-"], nav[id$="-mininav"], [data-akh-help-host]){
    transition:opacity 180ms cubic-bezier(.22,.61,.36,1), visibility 0s linear 0s;
  }
  html.akx.akx-drawer-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
  html.akx.akx-drawer-closing :is(nav[id^="akmn-"], nav[id$="-mininav"]),
  html.akx.akx-help-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
  html.akx body.akh-nav-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
  html.akx body.akrw-modal-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
  html.akx body.akh-home-v2__modal-open :is(nav[id^="akmn-"], nav[id$="-mininav"]),
  html.akx.akx-drawer-open [data-akh-help-host],
  html.akx.akx-drawer-closing [data-akh-help-host],
  html.akx.akmn-chip-open [data-akh-help-host],
  html.akx body.akh-nav-open [data-akh-help-host],
  html.akx body.akrw-modal-open [data-akh-help-host],
  html.akx body.akh-home-v2__modal-open [data-akh-help-host]{
    transition:opacity 180ms cubic-bezier(.4,0,1,1), visibility 0s linear 180ms !important;
  }
  html.akx:has(#akrw-hero-v20.akrw-nav-open) :is(nav[id^="akmn-"], nav[id$="-mininav"], [data-akh-help-host]),
  html.akx:has(#ak-lib-notify-modal:not([hidden])) :is(nav[id^="akmn-"], nav[id$="-mininav"], [data-akh-help-host]){
    transition:opacity 180ms cubic-bezier(.4,0,1,1), visibility 0s linear 180ms !important;
  }
  html.akx:has(dialog:modal) :is(nav[id^="akmn-"], nav[id$="-mininav"], [data-akh-help-host]){
    transition:opacity 180ms cubic-bezier(.4,0,1,1), visibility 0s linear 180ms !important;
  }
  html.akx:has(nav[id$="-mininav"].is-open) [data-akh-help-host]{
    transition:opacity 180ms cubic-bezier(.4,0,1,1), visibility 0s linear 180ms !important;
  }
}


/* ── v7 · The course-page lightbox covers the site header too ─────────────────────────────────────────────────────
   Same screen (5.webp): with a gallery card open, the site header stayed bright and live ABOVE the lightbox's dark
   scrim; on phones it also covers the top of the card (measured 390x844: header 0..77, card starts under it).
   Cause: the lightbox (#akrw-gallery-lightbox, z 2200) is trapped in .is-container (position:relative; z-index:1),
   and the navbar section is z 2 in the same page-wide context, so 2 > 1 wins.
   Fix: while that lightbox is open, and only then, its own container rises to z 3, one step above the navbar.
   The navbar's z-index is not touched (implementation_map §7.4 #5); nothing is written into the page; no
   transform/filter/contain anywhere. Pages without the navbar (the 14 menu-OFF ad pages) are unaffected in effect.
   Rollback: drop this block (ux-v7 without it), or repoint the Header Code to ux-v6.                                 */
html.akx body.akrw-modal-open .is-container:has(#akrw-gallery-lightbox.visible){ z-index:3 !important; }

/* ══ v7 · T · Tamboora learner posts (founder P0 tamboora F1: official tile + words; screenshots untouched) ══ */

/* ── v7 · Learner posts from Tamboora, shown whole and labelled (founder 25-Sep-2026, screens 6 + 7) ──────────────
   Founder (verbatim): "3 DAY IMAGES SEEMS BROKEN BECAUSE IT IS NOT UNDERSTANDABLE THAT THESE ARE SCREENSHOTS FROM
   TAMBOORA, WITH SMALL TAMBOORA LOGO". Four images on the 3-day Reset page and its ad twin are screenshots of learners'
   posts on Tamboora (1080x1350 portrait). Two sit in "visual break" cards that force 16:9 + object-fit:cover, so only
   rows 371..978 of 1350 showed: text cut at the top, the Tamboora "Hide" toggle kept, text blown up to ~40px on a
   laptop. This block shows each screenshot whole inside a framed post card with the approved Tamboora tile and the
   line "A learner's post on Tamboora" (the name in words, as the page's FAQ already writes it; no (R) because the
   tamboora.trademark public form is not ruled for course_landing).
   - CSS only. Nothing is written into the page (implementation_map s7): the label is generated content.
   - Matched by file name inside this page's own image folder (…/watercolour-reset-3-day-workshop/images/…), so it is
     inert on every other image and page. The "-r" prefix also matches re-cut files (-r2) if the founder picks them.
   - Scoped to html.akx, so it never runs in the builder, a framed preview or the protected page (ux-v6.js guard).
   - Browsers without :has() drop these rules and keep today's look.
   - The tile is 01_COMPANY_IDENTITY/brand-assets/v5.1/tamboora/logos/tamboora-c-tile-indigo.svg, inlined byte-exact
     (base64; sha256 735840bf…c1e4, 1,317 B), so no new CDN file is needed.
   - No motion is added; the slider's own fades carry the label with its card. */

/* A · the two posts used as "visual break" cards: contained, readable, framed */
html.akx #akrw-hero-v20 .akrw-visual-break-card:has(> img[src*="/watercolour-reset-3-day-workshop/images/panel-a-r"], > img[src*="/watercolour-reset-3-day-workshop/images/panel-b-r"]){
  width:min(100%,460px) !important; margin:0 auto !important; box-sizing:border-box !important;
  grid-template-rows:auto auto auto !important;
  background:#fff !important; border:1px solid rgba(53,43,37,.12) !important; border-radius:16px !important;
  box-shadow:0 1px 2px rgba(28,22,18,.06),0 8px 24px rgba(28,22,18,.06) !important; overflow:hidden !important;
}
html.akx #akrw-hero-v20 .akrw-visual-break-card:has(> img[src*="/watercolour-reset-3-day-workshop/images/panel-a-r"], > img[src*="/watercolour-reset-3-day-workshop/images/panel-b-r"]) > img{
  aspect-ratio:1080 / 1350 !important; width:100% !important; height:auto !important; max-height:none !important;
  object-fit:contain !important; object-position:50% 0 !important; background:#fff !important; border-radius:0 !important;
}

/* B · the two posts in the "More from learners" slider: same frame, slider geometry untouched */
html.akx #akrw-hero-v20 .akrw-review-strip-card:has(> img[src*="/watercolour-reset-3-day-workshop/images/review-sarita-r"], > img[src*="/watercolour-reset-3-day-workshop/images/review-ponni-r"]){
  box-sizing:border-box; background:#fff; border:1px solid rgba(53,43,37,.12); border-radius:16px; overflow:hidden;
  box-shadow:0 1px 2px rgba(28,22,18,.06),0 8px 24px rgba(28,22,18,.06);
  /* pure cross-fade: without the 12px rise the two identical headers sit exactly on top of each other while the
     posts swap, so the label never doubles (measured: 2 offset labels in frame 2 of 20 with the rise) */
  transform:none !important;
}
html.akx #akrw-hero-v20 .akrw-review-strip-card:has(> img[src*="/watercolour-reset-3-day-workshop/images/review-sarita-r"], > img[src*="/watercolour-reset-3-day-workshop/images/review-ponni-r"]) > img{
  border:0 !important; border-radius:0 !important; box-shadow:none !important; background:#fff !important;
}

/* C · the post header: Tamboora tile (24px, half-tile clear space) + one line in words */
html.akx #akrw-hero-v20 .akrw-visual-break-card:has(> img[src*="/watercolour-reset-3-day-workshop/images/panel-a-r"], > img[src*="/watercolour-reset-3-day-workshop/images/panel-b-r"])::before,
html.akx #akrw-hero-v20 .akrw-review-strip-card:has(> img[src*="/watercolour-reset-3-day-workshop/images/review-sarita-r"], > img[src*="/watercolour-reset-3-day-workshop/images/review-ponni-r"])::before{
  content:"A learner\2019 s post on Tamboora" !important;
  display:block !important; position:static !important; box-sizing:border-box !important;
  width:auto !important; height:auto !important; min-height:48px; margin:0 !important;
  padding:12px 16px 12px 52px !important;
  background:#fff url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHJvbGU9ImltZyI+PHRpdGxlPlRhbWJvb3JhIHRpbGU8L3RpdGxlPjxnIGRhdGEtcGFydD0ic2VhbCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwIDAuMDAwMCkgc2NhbGUoMS4wMDAwMDApIj48cmVjdCB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiByeD0iMjI2IiBmaWxsPSIjM0E0QTZCIi8+PGcgZGF0YS1wYXJ0PSJlbWJsZW0iIGRhdGEtdmFyaWFudD0iY29tcGFjdCIgZmlsbD0iI0ZCRjdGMyIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1My41MjQxMTU3NTU2MjcwMSAxMTkpIHNjYWxlKDAuODUzNzUzMTg3NzE0ODI0MykiPjxwYXRoIGQ9Ik02NTEuODYgNDUKICAgQzY5Ny41IDQ1IDcwNSA4My41IDcwNSA5OS45MwogICBDNzA1IDIwNC4wNiAzMjkuOTYgNDAxLjM1IDMyOS45NiA1ODUuMjMKICAgQzMyOS45NiA3NjYuODQgNDI3LjM0IDkwMS45IDYwNi44NCA5MDEuOQogICBDNzMyLjg0IDkwMS45IDc5MS42IDc3OC42NCA3NTAuMzEgNzAzLjQ3CiAgIEM2ODkuMTcgNTkyLjE2IDU0OC40NiA1MzQuODUgNTEyLjkzIDUyMS44NAogICBDNTA0LjYyIDUxOC44IDQ5NS41NyA1MTguMTcgNDg3LjAxIDUyMC40CiAgIEM0ODUuNDYgNTIwLjggNDgzLjkgNTIxLjMgNDgyLjM3IDUyMS45MgogICBDNDcyLjY4IDUyNS44NSA0NzIuMzkgNTM5LjQxIDQ4MS45MSA1NDMuNzMKICAgQzQ4MS45NiA1NDMuNzUgNDgyIDU0My43NyA0ODIuMDUgNTQzLjc5CiAgIEM3MjEuNjUgNjUyLjQ0IDY5MS4xMiA4MTMuMzEgNjEzLjYgODEzLjMxCiAgIEM1NTQuNjQgODEzLjMxIDQ0MC42NyA3MjkuMTQgNDQwLjY3IDU4Ny4yNAogICBDNDQwLjY3IDM5Mi4xMiA2OTkgMjczLjEyIDc4MS4xOCAxNjcuODcKICAgQzgyOS4zNCAxMDYuMjIgODEwLjUzIDAgNjg2LjQzIDAKICAgQzU3My4zMyAwIDQxNC41IDE1Ni4zMyAzOTIuNCAzMDcuNzMKICAgQzM4OS45IDMyNy41IDQyNS41IDMyNiA0MzEuNSAzMDEuMTcKICAgQzQ1MSAxOTQgNTgxLjc1IDQ1IDY1MS44NiA0NSBaIi8+PHBhdGggZD0iTTMxOS4zNCAxNDAuNDIgQzI5My44OCAxNDAuNDIgMjczLjI4IDE2MS4wNiAyNzMuMjggMTg2LjQ4CiAgIFY4MTguNjEgTDMxOS4zNCA4OTQuMzIgTDM2NS40IDgxOC42MSBWMTg2LjQ4CiAgIEMzNjUuMzkgMTYxLjA3IDM0NC43NSAxNDAuNDIgMzE5LjM0IDE0MC40MiBaCiAgIE0zMTkuMzQgODYzIEwyOTQuODQgODIyIEgzNDMuODQgWiIvPjwvZz48L2c+PC9zdmc+") 16px 50% / 24px 24px no-repeat !important;
  border:0 !important; border-bottom:1px solid rgba(28,22,18,.08) !important; border-radius:0 !important;
  font-family:Manrope,var(--akrw-font-sans,system-ui),system-ui,-apple-system,"Segoe UI",sans-serif !important;
  font-size:13px !important; font-weight:600 !important; line-height:24px !important; letter-spacing:0 !important;
  font-style:normal !important; text-transform:none !important; color:#3C332D !important; text-align:left !important;
  white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;
  opacity:1 !important; transform:none !important; box-shadow:none !important; pointer-events:none;
}

/* D · phones: the two visual-break posts run edge to edge, like a post in a feed, so the post's own text reaches
   about 12-14px instead of 10-12px (measured). The slider (B) keeps its own 380px track. */
@media (max-width:599px) and (pointer:coarse){
  html.akx #akrw-hero-v20 .akrw-visual-break-card:has(> img[src*="/watercolour-reset-3-day-workshop/images/panel-a-r"], > img[src*="/watercolour-reset-3-day-workshop/images/panel-b-r"]){
    width:100vw !important; max-width:100vw !important; margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important;
    border-left:0 !important; border-right:0 !important; border-radius:0 !important;
  }
}

/* ── v7 · A · Audit items (site_upgrade_2026-09-25/audit/BUILD_SPEC_2026-09-25.json ux_v7_css) ───────────────────
   Scoping rule used below (layer build, 25-Sep): a rule that can change LAYOUT at first paint is gated in CSS only,
   never on a class the deferred ux-v7.js adds later (that would move content after the first paint = load CLS):
     GATE = html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"]))
   (the same CSS-only R13 test ux-v6 already uses for the sticky logo, so /page/3daywatercolourworkshoponline keeps
   computing exactly as on v6). Paint-only rules and rules for things that only appear after an interaction (sticky
   bar, focus, modals, :active) use html.akx, which the protected page, the builder and framed previews never get. */

/* C01 · sticky booking button: 14 px bold label (page CSS forces 10.5px!important, hence !important) and a 44 px tall
   hit area from a pseudo-element, so the bar keeps its 54 px (desktop) / 50 px (phone) height. The spec's min-height:44px
   grew the bar to 60 / 54 px and, applied when the deferred script added akx, moved the visible bar after the first
   paint (CLS 0.21 at 1440 on the 14-Day LP, probe2.mjs); both rules below are CSS-gated so they hold from first paint. */
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-top-sticky-cta .akrw-sticky-book-btn{
  font-size:14px !important; font-weight:700 !important; padding-inline:16px !important; position:relative;
}
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-top-sticky-cta .akrw-sticky-book-btn::after{
  content:''; position:absolute; left:0; right:0; top:50%; height:44px; transform:translateY(-50%);
}
/* C02 · the bar's close x keeps its 22x22 look with a 44x44 hit area */
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-top-sticky-cta .akmn-bar-close{ position:relative; margin-inline-start:14px; }
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-top-sticky-cta .akmn-bar-close::after{ content:''; position:absolute; inset:-11px; }
/* C03 · the bar's value line: 12 px floor; below 375 px the label and its separator step aside (DOM unchanged) */
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 :is(.akrw-sticky-label,.akrw-sticky-usual,.akrw-sticky-start,.akrw-sticky-save){ font-size:12px !important; }
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-sticky-sep{ font-size:11px !important; }
@media (max-width:374px){
  html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-top-sticky-offer :is(.akrw-sticky-label,.akrw-sticky-sep){ display:none !important; }
}
/* C04 · landing type floor: nothing a visitor reads is under 12 px. The spec's class list left 22 visible own-text
   elements under 12 px on the 14-Day LP at 390 (probe3.mjs: rating date <small> 10px, hero caption 9.92px, keyfacts
   10.88-11.52px, visual-break lines 10.88px, schedule chips 11.52px, inline "more" 11.84px, step day 11.52px, fee
   kickers 10.88px, the bar close glyph 11px), so the list is completed here to meet the block's own acceptance. */
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 :is(.akrw-eyebrow-pill,.akrw-dates-label,.akrw-curriculum-session-live,.akrw-gallery-keyfact,.akrw-gallery-readmore,
  .akrw-gallery-keyfacts > *,.akrw-hero-text-caption,.akrw-visual-break-line,.akrw-curriculum-schedule-chip,summary.akrw-inline-readmore,
  .akrw-steps-day,.akrw-reserve-kicker,.akrw-bottom-cta-kicker,small,.akmn-bar-close){ font-size:12px !important; }
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-step-check{ font-size:11px !important; }   /* decorative aria-hidden tick: the acceptance allows 11 px */
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 :is(.akrw-curriculum-session-note,.akrw-curriculum-session-time,.akrw-gallery-day){ font-size:13px !important; }
/* C05 · landing tap targets: dots get 24x24 hit areas 24 px apart, toggles and Read more get 44 px tall ones.
   Probed on live v6 25-Sep (out/probe_v6.json): none of these classes used ::after; the dots are already
   position:relative. The transform sits on a pseudo-element inside page content (allowed by §7.4 #3). */
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 :is(.akrw-gallery-dot,.akrw-steps-dot,.akrw-inline-dot){ position:relative; margin-inline:7px; }
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 :is(.akrw-gallery-dot,.akrw-steps-dot,.akrw-inline-dot)::after{
  content:''; position:absolute; left:50%; top:50%; width:24px; height:24px; transform:translate(-50%,-50%);
}
html.akx #akrw-hero-v20 :is(.akrw-gallery-day-toggle,.akrw-nav-pill,.akrw-gallery-readmore,summary.akrw-inline-readmore){ position:relative; }
html.akx #akrw-hero-v20 :is(.akrw-gallery-day-toggle,.akrw-nav-pill,.akrw-gallery-readmore,summary.akrw-inline-readmore)::after{ content:''; position:absolute; inset:-14px -6px; }
/* C06 · desktop nav on touch laptops: 44 px tall top links (the 76 px bar height is unchanged). The spec's hover
   bridge (li > ul::before) is NOT used: the platform already paints that pseudo (content " ") and the panel is
   overflow:hidden, so a -28px bridge would be clipped (probed 25-Sep). The label's own 76 px <li> already meets
   the panel edge; the diagonal path is handled in ux-v7.js (only a LABEL can take over an open panel). */
@media (min-width:1025px) and (pointer:coarse){
  html.akx .is-topbar .is-menu > ul.is-menu-links > li > a{ padding-block:12px; }
}
/* C08 · short landscape screens: the section lists scroll inside themselves */
@media (max-height:500px){
  html.akx nav[id^='akmn-'] :is(.akmn-list,.akmn-course-list), html.akx #aklw-mininav .aklw-mininav-list{
    max-height:calc(100dvh - 72px); overflow-y:auto; overscroll-behavior:contain;
  }
}
/* C09 · desktop hero photo: shown at once, not after the reveal */
html.akx:not(.akx-protected) #akrw-hero-v20 .akrw-bodyband > .akrw-inline-photo-card:first-of-type{
  opacity:1 !important; transform:none !important; transition:none !important;
}
/* C10 · landing H1 on laptops, step A: a wider measure and balanced lines (step B is a taste preview, not built in) */
@media (min-width:1024px){
  html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-headline-wrap{ max-width:min(880px,100%) !important; }
  html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-title{ text-wrap:balance; }
}
/* C11 · homepage artwork lightbox: the whole image fits the dialog */
/* the art modal is re-parented to <body> at runtime (probe3.mjs), so it is matched by its own class, not under main */
html.akx .akh-home-v2__art-modal .akh-home-v2__art-modal-image{
  max-width:100% !important; max-height:calc(100dvh - 120px) !important; width:auto !important; height:auto !important;
  object-fit:contain; margin:auto; display:block;
}
/* C12 · Course Library: path sections share the page head's measure on wide screens, and a card's buttons sit on
   its bottom edge so a row's CTAs line up. Reconciled with v7 §L2 (one-card feature row): that rule is more
   specific and wins for a lone card; inside it the body keeps this column flow. */
@media (min-width:1025px){
  html #ak-library-v2 .ak-lib__path-section{ margin-inline:auto; box-sizing:border-box; }
}
html #ak-library-v2 .ak-lib__card{ display:flex; flex-direction:column; }
html #ak-library-v2 .ak-lib__card-body{ flex:1 1 auto; display:flex; flex-direction:column; }
html #ak-library-v2 .ak-lib__card-actions{ margin-top:auto; }
/* C13 · tablet layouts */
@media (orientation:portrait) and (min-width:768px), (min-width:1921px){
  html main#akh-home-v2 #akh-home-v2__hero{ min-height:min(100svh,880px) !important; }
}
@media (min-width:700px){ html main#akh-home-v2 .akh-home-v2__shop-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:900px){ html .akct-cards{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:700px) and (max-width:1023px){ html #akfl .akfl-cards-section{ padding-inline:24px; } }
html .akh-home-v2__skip-link:not(:focus){ box-shadow:none; }
/* C14 · contrast and fonts */
html.akx #akrw-hero-v20 .akrw-sticky-price > span,
html.akx #akrw-hero-v20 .akrw-cta-note > span:not(.akrw-price-strike){ color:#137030 !important; }
html.akx #akfl :is(.akfl-meta,.akfl-sub,.akfl-close-sub){ color:rgba(28,22,18,.64) !important; }
:where(html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"]))) :where(button,input,select,textarea){ font-family:inherit; }
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) nav[id^='akmn-'] button{ font-family:Manrope,system-ui,sans-serif; }
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #ak-footer-v2 :is(p,li,td,label){ font-family:inherit; }
/* C15 · focus visibility */
html.akx a.akrw-skip-link:is(:focus,:focus-visible),
html.akx #akrw-hero-v20 a.akrw-skip-link:is(:focus,:focus-visible){
  clip:auto !important; clip-path:none !important; width:auto !important; height:auto !important; overflow:visible !important;
  position:fixed !important; left:12px !important; top:calc(var(--akrw-nav-h, 72px) + 8px) !important; padding:12px 16px !important; z-index:2147483600 !important;
}
html.akx-kbd :is(.akh-home-v2__final-choice,.akab-cta) :focus-visible{ outline-color:#FBF7F2 !important; }
html.akx-kbd div:focus-visible{ outline:2px solid var(--akx-wine) !important; outline-offset:3px !important; }
html.akx main#akh-home-v2 .akh-home-v2__learner-images:focus-within{ scroll-snap-type:none; }
@media (max-width:1024px){
  html.akx-nav #is-menu-toggle:not(.active) ~ .is-menu{ overflow:hidden !important; }
  html.akx{ scroll-padding-bottom:76px; }
}
/* C17 · reading measure and wrapping */
html #akh-legal .akl-prose :is(p,li), html #aklw .aklw-faq-answer,
html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 :is(.akrw-compact-item,.akrw-quickfit-item){ max-width:70ch; }
:where(html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"]))) :where(h1,h2,h3){ text-wrap:balance; }
:where(html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"]))) :where(p,li,figcaption,blockquote){ text-wrap:pretty; }
@media (max-width:480px){
  html #ak-library-v2 h1, html main#akh-home-v2 .akh-home-v2__hero-title{ font-size:34px; line-height:38px; }
}
/* C18 · small phones and short landscape screens */
@media (max-width:374px){
  html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) .is-topbar-logo img{ max-width:128px; height:auto; }
}
@media (max-width:359px){
  html:not(.akx-protected):not(:has(link[href*="/3-day-watercolour-workshop-online-v3/"])) #akrw-hero-v20 .akrw-title{ font-size:clamp(28px,8.6vw,32px); }
}
@media (max-width:1024px) and (orientation:landscape) and (max-height:500px){
  html.akx-nav:not(.ak-nav-on):not(.akx-hold) .is-topbar,
  html.akx-nav:not(.ak-nav-on):not(.akx-hold) .is-topbar .is-topbar-container,
  html.akx-nav:not(.ak-nav-on):not(.akx-hold) .is-topbar .is-topbar-logo{ height:60px !important; }
}
/* C19 · reduced motion: in-page jumps do not glide */
@media (prefers-reduced-motion:reduce){ html.akx{ scroll-behavior:auto !important; } }
/* TASTE:press · C20 (on by the coordinator's ruling): a press answers the finger; reduced motion dims instead of moving */
html.akx :is(.akh-home-v2__btn,.ak-lib__btn-primary,.ak-lib__btn-outline,.aklw-btn,.akfl-btn,.akab-btn,.akct-btn,.akrw-btn):active{
  transform:translateY(1px) scale(.985); transition-duration:100ms;
}
html.akx.akx-rm :is(.akh-home-v2__btn,.ak-lib__btn-primary,.ak-lib__btn-outline,.aklw-btn,.akfl-btn,.akab-btn,.akct-btn,.akrw-btn):active{
  transform:none; filter:brightness(.95);
}
@media (hover:hover){ html.akx #akfl .akfl-btn-outline:hover{ background:rgba(122,36,54,.06); } }
/* /TASTE:press */
/* TASTE:price-font · C21 (on by the coordinator's ruling): homepage prices in Manrope, so the EB Garamond latin-ext
   file is not fetched for the rupee sign. Ungated so it holds from the first paint (no font swap later). */
html main#akh-home-v2 :is(.akh-home-v2__price-current,.akh-home-v2__price-previous){ font-family:Manrope,system-ui,sans-serif; }
/* /TASTE:price-font */

/* ── v7 · J08 · laptops: on a course page with its own booking bar, reading down hands the top to that bar ─────────
   ux-v7.js sets akx-lt only at >=1025 px wide, innerHeight <= 900, with #akrw-hero-v20 .akrw-top-sticky-cta, never on
   the Course Library (html.ak-nav-on). The page's own follower (--akrw-nav-h, measured every frame) then docks the
   booking bar at the top. The platform's own `transition:.3s` on .is-topbar carries the slide; reduced motion is
   instant. Held open while the drawer, the currency menu (akx-hold) or a desktop menu (akx-menu) is open. */
@media (min-width:1025px){
  html.akx-nav.akx-lt.akx-tucked:not(.ak-nav-on):not(.akx-hold):not(.akx-menu) .is-topbar{ top:-84px !important; }
  html.akx-nav.akx-lt.akx-rm:not(.ak-nav-on) .is-topbar{ transition:none !important; }
}
