/* Belajar: jalur setapak + pemutar pelajaran (owner: shell builder). Tokens from theme.css only. */
.big-num{font-family:var(--serif);font-size:28px;color:var(--head)}
.head{color:var(--head)}
.learn-stats{margin-bottom:8px}

/* the trail */
.trail{position:relative;max-width:660px;margin:0 auto}
.trail-unit{position:relative}
.unit{margin:28px 0 6px;padding:16px 18px;background:var(--g-deep);color:var(--on-deep);box-shadow:var(--shadow)}
.unit h2{color:var(--on-deep);margin:0;font-size:21px}
.unit small{color:var(--on-deep-muted)}
.nodes{list-style:none;margin:0;padding:22px 0 10px;display:flex;flex-direction:column;align-items:center;gap:18px;position:relative}
/* the footpath: a dashed winding line through the discs (svg drawn by learn.js) */
.trail-line{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:0}
.trail-line path{fill:none;stroke:var(--batu);stroke-width:3;stroke-dasharray:2 9;stroke-linecap:round}
.node{z-index:1}
.node{position:relative;width:min(440px,100%);display:flex}
.node.side-1{transform:translateX(46px)}
.node.side-3{transform:translateX(-46px)}
.node-in{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);padding:6px 10px 6px 6px;border-radius:999px 18px 18px 999px;min-height:56px;flex:1;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
a.node-in:hover{border-color:var(--primary)}
.node .disc{flex:none;width:60px;height:60px;border-radius:99px;display:grid;place-items:center;font-size:22px;font-weight:700;background:var(--line);color:var(--muted);box-shadow:inset 0 -5px 0 rgba(0,0,0,.08)}
.node.open .disc{background:#22756E;color:#fff;box-shadow:inset 0 -5px 0 rgba(0,0,0,.2),0 0 0 6px var(--focus)}
.node.open .node-in{border-color:var(--kolam)}
.node.done .disc{background:var(--good-bg);color:var(--good);border:2px solid var(--good-line)}
.node-txt{min-width:0}
.node b{display:block;color:var(--head);line-height:1.3}
.node small{display:block;font-size:12.5px}
.node.locked .node-in{box-shadow:none;background:var(--paper);border-style:dashed;color:var(--muted)}
.node.locked b{color:var(--muted)}
@media (max-width:560px){.node{width:calc(100% - 36px)}.node.side-1{transform:translateX(18px)}.node.side-3{transform:translateX(-18px)}}

/* notebook */
.notebook{display:grid;gap:12px;margin-top:12px}
.note{border-left:3px solid var(--kolam);padding:6px 0 6px 14px}
.note-q{font-family:var(--serif);font-style:italic;color:var(--muted);margin-bottom:4px}
.note-a{font-size:15px;white-space:normal}

/* lesson player */
.lesson{max-width:760px;margin:0 auto}
.lesson-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.lesson-top .progress{flex:1;height:12px}
.lesson-top a{text-decoration:none;font-size:22px;color:var(--muted);min-width:44px;min-height:44px;display:grid;place-items:center}
.lesson-title{font-size:13px;margin-bottom:14px}
.step{animation:rise .25s ease}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.step .prompt{font-family:var(--serif);font-size:22px;color:var(--head);line-height:1.3;margin-bottom:16px}
.learn-body{font-size:16px;line-height:1.7}
.learn-body ul,.learn-body ol{padding-left:20px}
.learn-body .callout{background:var(--dew);border-radius:var(--leaf);padding:10px 14px;margin:12px 0}
.learn-body blockquote{margin:12px 0;padding:4px 14px;border-left:3px solid var(--kolam);font-family:var(--serif);font-style:italic}
.learn-body table{border-collapse:collapse;width:100%;margin:10px 0;font-size:14px}
.learn-body td,.learn-body th{border:1px solid var(--line);padding:6px 9px;text-align:left}
.learn-body th{background:var(--paper)}
.opts{display:grid;gap:10px}
.opt{border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;padding:12px 16px;min-height:48px;text-align:left;font-size:15px;box-shadow:0 3px 0 var(--line)}
.opt:hover{border-color:var(--batu)}
.opt.sel{border-color:var(--primary);box-shadow:0 3px 0 var(--primary)}
.opt.right{border-color:var(--good);background:var(--good-bg);box-shadow:0 3px 0 var(--good)}
.opt.wrong{border-color:var(--bad);background:var(--bad-bg);box-shadow:0 3px 0 var(--bad)}
.opt:disabled{cursor:default;color:var(--ink)}
.feedback{margin-top:18px;border-radius:var(--leaf);padding:14px 16px;font-size:15px}
.feedback.ok{background:var(--good-bg);color:var(--good)}
.feedback.no{background:var(--bad-bg);color:var(--bad)}
.feedback b{display:block;font-size:16px;margin-bottom:2px}
.lesson-foot{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:10px}
.order-pool,.order-ans{display:flex;flex-wrap:wrap;gap:8px;min-height:56px;padding:10px;border-radius:14px}
.order-ans{background:var(--card);border:2px dashed var(--batu);margin-bottom:10px}
.order-pool .opt,.order-ans .opt{padding:8px 12px;font-size:14px;min-height:44px}

/* reflect + read */
.reflect{background:var(--card);border:1px solid var(--line);padding:18px;box-shadow:var(--shadow);
  background-image:repeating-linear-gradient(180deg,transparent 0 31px,var(--line) 31px 32px);background-position:0 8px}
.reflect textarea{background:var(--field);font-size:15.5px;line-height:1.6}
.reflect .margin-note{margin:-6px 0 10px}
.readcard{background:var(--water);border:1px solid var(--line);padding:20px;box-shadow:var(--shadow)}
.readcard h2{margin:2px 0 2px}
.read-why{margin:12px 0 14px;font-size:15.5px}

/* celebration */
.celebrate{text-align:center;padding:30px 14px}
.celebrate > .big{font-size:58px;line-height:1.1}
.celebrate .btn{max-width:100%;text-align:center}
.xp{font-family:var(--serif);font-size:40px;color:var(--link)}
.joke-done{max-width:480px;margin:6px auto 18px;padding:12px 16px;background:var(--g-warm);border-radius:var(--leaf);border:1px solid var(--line)}
.joke-done .hand{color:var(--tanah);display:block}
.joke-done p{margin:2px 0 0;font-family:var(--serif);font-size:16.5px}
.flash{display:grid;place-items:center;min-height:180px;border-radius:16px;background:var(--g-deep);color:var(--on-deep);font-family:var(--serif);font-size:22px;padding:24px;text-align:center;cursor:pointer;user-select:none}
.flash.back{background:var(--dew);color:var(--head);font-family:var(--sans);font-size:16px}
