/* LotusAstro Learn: sky lab (chapter hero interactives) and a refresh of the chapter labs */
.ll{--n0:#0B1230;--n1:#121C42;--n2:#1B2A66;--gd:#F2C14E;--gl:#DDB257;--tx:#E8ECFA;--mu:#A9B3D6;
  background:linear-gradient(160deg,#16225A 0%,#0E1636 55%,#0B1230 100%);color:var(--tx);border-radius:18px;padding:1.6rem 1.6rem 1.8rem;margin:1.6rem 0 2.2rem;box-shadow:0 18px 50px -20px rgba(11,18,48,.55);position:relative;overflow:hidden}
.ll::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% -10%,rgba(242,193,78,.18),transparent 45%),radial-gradient(circle at -10% 110%,rgba(127,167,217,.16),transparent 50%);pointer-events:none}
.ll-head{position:relative;max-width:62ch;margin-bottom:1rem}
.ll-k{margin:0;font-family:var(--f-mono,"IBM Plex Mono",monospace);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gd)}
.ll-t{margin:.25rem 0 .35rem;font-family:var(--f-display,"IBM Plex Serif",serif);font-size:clamp(1.45rem,3vw,1.9rem);color:#fff;font-weight:600;line-height:1.2}
.ll-sub{margin:0;color:var(--mu);font-size:.98rem;line-height:1.55}
.ll-body{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:1.4rem;align-items:start}
.ll-stage{position:relative;display:grid;gap:.8rem;justify-items:center}
.ll-wheel{width:100%;max-width:560px;height:auto;display:block;touch-action:none;user-select:none;-webkit-user-select:none}
.ll-wheel.dragging{cursor:grabbing}
.ll-zs{font-family:"Apple Symbols","Segoe UI Symbol","Noto Sans Symbols 2","DejaVu Sans",sans-serif;font-size:22px;fill:#F6E3B0;font-variant-emoji:text}
.ll-sn{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.08em;fill:#C9D0EC;opacity:.8}
.ll-nn{font-family:"IBM Plex Mono",monospace;font-size:7.5px;fill:#C9D0EC;opacity:.75}
.ll-hn{font-family:"IBM Plex Sans",sans-serif;font-size:11px;font-weight:600;fill:#E8ECFA}.ll-hn.one{fill:#0B1230}
.ll-pg{font-family:"Apple Symbols","Segoe UI Symbol","Noto Sans Symbols 2","DejaVu Sans",sans-serif;font-size:19px;font-weight:700;pointer-events:none}
.ll-pl{font-family:"IBM Plex Sans",sans-serif;font-size:10.5px;fill:#E8ECFA;opacity:.9;pointer-events:none}
.ll-rx{font-size:12px;fill:#FF9C8C;font-weight:700}
.ll-tok{transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.ll-wheel.dragging .ll-tok{transition:none}
.ll-tok.drag{cursor:grab;outline:none}
.ll-tok.drag:focus-visible circle:nth-child(2){stroke:#fff;stroke-width:4}
.ll-halo{animation:llpulse 2.2s ease-in-out infinite;transform-origin:center}
@keyframes llpulse{0%,100%{opacity:.12;transform:scale(1)}50%{opacity:.32;transform:scale(1.15)}}
.ll-band,.ll-ray{transition:opacity .2s}
.ll-ctrl{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;width:100%}
.ll-ctrl:empty{display:none}
.ll-seg{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}
.ll-seg button,.ll-ch button{font:inherit;font-size:.85rem;background:rgba(255,255,255,.07);border:1px solid rgba(221,178,87,.35);color:var(--tx);border-radius:999px;padding:.38rem .85rem;cursor:pointer;transition:background .15s,border-color .15s}
.ll-seg button:hover,.ll-ch button:hover{background:rgba(255,255,255,.14)}
.ll-seg button[aria-pressed="true"]{background:var(--gd);border-color:var(--gd);color:#0B1230;font-weight:600}
.ll-sel{font:inherit;font-size:.92rem;background:#0E1636;color:var(--tx);border:1px solid rgba(221,178,87,.45);border-radius:8px;padding:.45rem .6rem}
.ll-scrub{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:center;width:100%;max-width:560px}
.ll-scrub input[type=range]{width:100%;accent-color:var(--gd)}
.ll-play{width:2.4rem;height:2.4rem;border-radius:50%;border:0;background:var(--gd);color:#0B1230;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:0 0 0 4px rgba(242,193,78,.18)}
.ll-out{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:var(--gd);min-width:6.5rem;text-align:right}
.ll-side{display:grid;gap:1rem}
.ll-card{background:rgba(255,255,255,.06);border:1px solid rgba(221,178,87,.25);border-radius:14px;padding:1rem 1.1rem;backdrop-filter:blur(4px)}
.ll-ck{margin:0 0 .6rem;font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gd)}
.ll-big{margin:.1rem 0 .6rem;font-family:var(--f-display,"IBM Plex Serif",serif);font-size:1.45rem;line-height:1.25;color:#fff}
.ll-dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem .9rem;margin:0;font-size:.93rem}.ll-dl dt{color:var(--mu)}.ll-dl dd{margin:0;color:#fff}
.ll-m{color:var(--mu);font-size:.85rem}
.ll-sw{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;margin-right:.4rem;vertical-align:-1px}
.ll-row{display:grid;grid-template-columns:1.5rem 5.2rem minmax(0,1fr);gap:.4rem;align-items:center;padding:.28rem 0;border-top:1px solid rgba(255,255,255,.07);font-size:.9rem}.ll-row:first-of-type{border-top:0}
.ll-row span{font-family:"Apple Symbols","Segoe UI Symbol","DejaVu Sans",sans-serif;font-size:1.05rem;text-align:center}.ll-row em{font-style:normal;color:var(--mu)}
.ll-bar{display:grid;grid-template-columns:1.4rem 4.6rem minmax(0,1fr) 3.6rem;gap:.45rem;align-items:center;font-size:.86rem;padding:.2rem 0}
.ll-bar span{font-family:"Apple Symbols","Segoe UI Symbol","DejaVu Sans",sans-serif;text-align:center}.ll-bar i{height:.45rem;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden}.ll-bar u{display:block;height:100%;border-radius:4px;transition:width .2s}.ll-bar em{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:.75rem;color:var(--mu);text-align:right}
.ll-chip{font-style:normal;display:inline-block;border:1.5px solid;border-radius:999px;padding:0 .45rem;font-size:.78rem;color:#fff}
.ll-note{margin:.6rem 0 0;color:var(--mu);font-size:.88rem;line-height:1.5}
.ll-badge{display:inline-block;margin:.7rem 0 0;background:var(--gd);color:#0B1230;font-weight:700;font-size:.8rem;border-radius:999px;padding:.15rem .7rem}
.ll-mis{background:rgba(242,193,78,.08);border:1px dashed rgba(242,193,78,.45);border-radius:14px;padding:.9rem 1rem}
.ll-mh{display:flex;justify-content:space-between;align-items:center;font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gd)}
.ll-dots{display:flex;gap:.3rem}.ll-dots i{width:.55rem;height:.55rem;border-radius:50%;border:1.5px solid var(--gd)}.ll-dots i.on{background:var(--gd)}
.ll-mq{margin:.55rem 0 .2rem;color:#fff;font-size:.98rem;line-height:1.45}
.ll-hint summary{cursor:pointer;color:var(--mu);font-size:.82rem}.ll-hint p{margin:.3rem 0 0;color:var(--mu);font-size:.85rem}
.ll-ch{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.ll-ch button.no{opacity:.4;text-decoration:line-through;cursor:default}
.ll-win{margin:.55rem 0 0;color:#A6E3B8;font-weight:600}
.ll-toast{position:absolute;bottom:3.6rem;left:50%;transform:translateX(-50%);background:#1F7A4D;color:#fff;padding:.6rem 1rem;border-radius:12px;font-size:.92rem;max-width:min(92%,440px);box-shadow:0 10px 30px rgba(0,0,0,.35);z-index:3;animation:llin .3s ease-out;transition:opacity .5s}
.ll-toast.go{opacity:0}
@keyframes llin{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.ll-mini{width:44%;max-width:240px;position:absolute;right:-.4rem;bottom:2.6rem;pointer-events:none;filter:drop-shadow(0 8px 20px rgba(0,0,0,.45))}
.ll-mini .ll-sn,.ll-mini .ll-pl{display:none}
.ll-dasha{width:100%;max-width:560px}
.ll-dbar{display:flex;height:2.1rem;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}
.ll-dbar span{display:flex;align-items:center;justify-content:center;min-width:2px;transition:width .2s;border-right:1px solid rgba(11,18,48,.6)}
.ll-dbar b{font-size:.7rem;color:#0B1230;font-weight:700;white-space:nowrap;overflow:hidden}
.ll-dax{display:flex;justify-content:space-between;font-family:"IBM Plex Mono",monospace;font-size:.7rem;color:var(--mu);margin-top:.3rem}
.ll-err{color:var(--mu)}
@media (max-width:860px){.ll-body{grid-template-columns:1fr}.ll{padding:1.2rem 1rem 1.4rem;border-radius:14px}.ll-mini{position:static;width:60%;margin:-.2rem auto 0}}
@media (prefers-reduced-motion:reduce){.ll-halo{animation:none}.ll-tok{transition:none}}

/* refresh of the existing chapter labs */
.lab{border:0;border-radius:16px;padding:1.5rem;background:linear-gradient(180deg,#FFFFFF 0%,#F6F8FC 100%);box-shadow:0 1px 0 rgba(16,26,43,.04),0 14px 34px -22px rgba(16,26,43,.45);border-top:4px solid #DDB257}
.lab svg{max-width:500px}
.card{border:0;background:#fff;box-shadow:inset 0 0 0 1px #E3E8F0;border-radius:12px}
.ctrls button,.pl button{transition:background .15s,border-color .15s,color .15s}
.ctrls button:hover,.pl button:hover{border-color:#2B3A8F}
.quiz{background:linear-gradient(160deg,#2B3A8F 0%,#1B2766 100%);box-shadow:0 14px 34px -22px rgba(16,26,43,.6)}

/* no box outline when a chart part is clicked; a soft ring only for keyboard users */
.lab svg [tabindex]:focus,.ll-wheel [tabindex]:focus,.lab svg:focus,.ll-wheel:focus{outline:none}
.lab svg .seg:focus-visible{stroke:#DDB257;stroke-width:3}
.lab svg,.ll-wheel{-webkit-tap-highlight-color:transparent}

/* worked-example kundlis (Einstein, Indira Gandhi) */
.ex.has-k{max-width:min(100%,1000px);grid-template-columns:minmax(0,1fr) minmax(250px,330px);column-gap:1.8rem;align-items:start}
.ex.has-k .ex-t{display:grid;gap:.6rem;align-content:start}
.ex.has-k .exsrc{grid-column:1/-1}
.ex.has-k:has(.exk.two){grid-template-columns:1fr}
.ex.has-k .exk.two{max-width:720px}
.exk{margin:0;display:grid;gap:.5rem}
.exk.two{grid-template-columns:1fr 1fr;gap:.6rem}
.exk.two figcaption,.exk.two .exk-lg{grid-column:1/-1}
.exk-c{margin:0}
.exk-svg{width:100%;height:auto;display:block}
.exk-frame{fill:#FFFDF8;stroke:#B89A55;stroke-width:2}
.exk-cell{fill:#FFFDF8;stroke:#C9B07A;stroke-width:1.3}
.exk-cell.exk-asc{fill:#FBF3E2}
.exk-num{font-family:"IBM Plex Mono",monospace;font-size:12px;fill:#8C96A8;text-anchor:middle}
.exk-p{font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:15px;font-weight:600;fill:#101A2B;text-anchor:middle;paint-order:stroke;stroke:#FFFDF8;stroke-width:4px;stroke-linejoin:round}
.exk-p.exk-a{fill:#9A6B12;font-style:italic}
.exk-ar{stroke-width:2;opacity:.8;fill:none;stroke-linecap:round}
.exk-t{margin:.25rem 0 0!important;text-align:center;font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#566275)}
.exk-lg{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.8rem;color:var(--ink,#101A2B);margin:0!important}
.exk-lg span{display:inline-flex;align-items:center;gap:.35rem}
.exk-lg i{width:.75rem;height:.75rem;border-radius:3px;display:inline-block}
.exk figcaption{font-size:.78rem;color:var(--muted,#566275);line-height:1.45}
@media (max-width:820px){.ex.has-k,.ex.has-k:has(.exk.two){grid-template-columns:1fr}.exk{max-width:380px;width:100%;justify-self:center}.exk.two{max-width:none}}
.exk-tint{opacity:.13;pointer-events:none}
.exk-tg{display:flex;flex-wrap:wrap;gap:.35rem}
.exk-tg button{font:inherit;font-size:.8rem;font-weight:600;border:1.5px solid var(--c);color:var(--c);background:#fff;border-radius:999px;padding:.25rem .75rem;cursor:pointer}
.exk-tg button[aria-pressed="true"]{background:var(--c);color:#fff}
.exk[data-toggle].on .exk-g{display:none}
.exk[data-toggle].on .exk-g.show{display:inline}
@media (max-width:560px){.exk.two{grid-template-columns:1fr}.exk.two .exk-c{max-width:340px;width:100%;justify-self:center}}
