/* scoped from legacy/css/lessons.css by tools/build-lessons.mjs */
.lsn-root{--accent-dark: var(--support-accent-deep);
  --bad-dark: color-mix(in srgb, var(--bad) 78%, black);
  --blue: var(--accent-2);
  --blue-dark: var(--support-accent-deep);
  --btn-y: 4px;}.lsn-root input[type="radio"], .lsn-root input[type="checkbox"]{accent-color: var(--accent);}.lsn-root main{flex:1;
 min-width:0;
 padding:36px 44px 80px;
 padding-inline-end:calc(44px + env(safe-area-inset-right, 0px));
 max-width:900px;
 margin-inline:auto;}@media (min-width: 1400px){.lsn-root main{max-width:1040px;}}.lsn-root .eyebrow-free{color:var(--muted); font-size:.85rem; margin:0 0 6px;}.lsn-root .level-title{font-size:clamp(1.5rem, 1.15rem + 1.4vw, 1.9rem);}.lsn-root .level-desc{max-width:62ch; color:var(--muted);}.lsn-root .callout{background:color-mix(in srgb, var(--blue) 8%, var(--surface));
 border:2px solid var(--border);
 border-right:5px solid var(--blue);
 padding:12px clamp(12px,4vw,16px);
 border-radius:14px 6px 6px 14px;
 margin:16px 0;
 font-size:.92rem;
 max-width:62ch;}.lsn-root .eqn-display{direction:ltr;
 unicode-bidi:isolate;
 display:flex;
 align-items:center;
 justify-content:center;
 flex-wrap:wrap;
 gap:9px;
 font-family:var(--mono);
 font-size:1.05rem;
 padding:14px 8px;}.lsn-root .eqn-inline{vertical-align:middle;
 font-size:.98rem;}.lsn-root .eqn-frac{display:inline-flex;
 flex-direction:column;
 align-items:center;
 vertical-align:middle;
 margin:0 5px;
 line-height:1.25;}.lsn-root .eqn-frac .num{padding:0 6px 3px;
 border-bottom:2px solid var(--ink);}.lsn-root .eqn-frac .den{padding:3px 6px 0;}.lsn-root .eqn-display sub, .lsn-root .eqn-inline sub{font-size:.72em;}.lsn-root .eqn-display sup, .lsn-root .eqn-inline sup{font-size:.72em;}.lsn-root .card{background:var(--surface);
 border:2px solid var(--border);
 border-radius:18px;
 padding:clamp(14px,4vw,20px) clamp(14px,4vw,22px);
 margin:18px 0;
 box-shadow:var(--shadow);
 max-width:62ch;
 overflow-x:auto;}.lsn-root .card.card--wide{max-width:100%;}.lsn-root .lsn-progress{display:flex; gap:6px; margin:0 0 22px; direction:rtl;
 position:sticky; top:0; z-index:6; padding:10px 0; background:var(--bg);}.lsn-root .lsn-progress .seg{flex:1; height:9px; border-radius:100px; background:var(--surface-2);
 overflow:hidden; transition:background-color .2s ease;}.lsn-root .lsn-progress .seg.filled{background:var(--accent);}.lsn-root .lsn-progress .seg.active{background:var(--blue);}.lsn-root .lsn-viewport{position:relative; touch-action:pan-y;}.lsn-root .lsn-viewport:focus{outline:none;}.lsn-root .lsn-swipe-hint{display:none;}@media (pointer:coarse){.lsn-root .lsn-swipe-hint{display:flex; align-items:center; justify-content:center; gap:6px;
 font-size:.72rem; color:var(--muted); margin:2px 0 10px;
 opacity:0; animation:lsnSwipeHint 4.5s ease forwards;}}@keyframes lsnSwipeHint{
 0%{opacity:0} 12%{opacity:1} 72%{opacity:1} 100%{opacity:0; visibility:hidden}
}@media (prefers-reduced-motion:reduce){.lsn-root .lsn-swipe-hint{animation:none; opacity:1;}}.lsn-root .lsn-slide{animation:slide-in .25s ease;
 
 transition:transform .2s ease;}@keyframes slide-in{
 from{ opacity:0; transform:translateY(6px); }
 to{ opacity:1; transform:translateY(0); }
 }.lsn-root .lsn-slide.is-from-next{animation-name:lsn-slide-from-left;}.lsn-root .lsn-slide.is-from-prev{animation-name:lsn-slide-from-right;}@keyframes lsn-slide-from-left{
 from{ opacity:0; transform:translateX(-26px); }
 to{ opacity:1; transform:translateX(0); }
 }@keyframes lsn-slide-from-right{
 from{ opacity:0; transform:translateX(26px); }
 to{ opacity:1; transform:translateX(0); }
 }@media (prefers-reduced-motion: reduce){.lsn-root .lsn-slide{animation:none; transition:none;}}.lsn-root .lesson-nav{display:flex; justify-content:space-between; align-items:center; gap:10px;
 margin-top:30px; padding:14px 0;
 padding-bottom:calc(14px + env(safe-area-inset-bottom, 0px));
 border-top:1px solid var(--border);
 position:sticky; bottom:0; background:var(--bg); z-index:5;}.lsn-root .lesson-nav button.btn{min-width:0;}.lsn-root .lesson-nav .prev-btn{visibility:visible;}.lsn-root .lesson-nav .prev-btn[data-hidden="true"]{visibility:hidden;}.lsn-root table.ref{border-collapse:collapse; font-family:var(--mono); direction:ltr; font-size:.95rem;}.lsn-root table.ref th, .lsn-root table.ref td{border:1px solid var(--border); padding:6px 14px; text-align:center;}.lsn-root table.ref th{background:var(--surface-2); font-family:var(--sans);}.lsn-root .steps-list{margin:0; padding-inline-start:1.4em;}.lsn-root .steps-list li{margin:6px 0; color:var(--ink);}.lsn-root .grade-table{border-collapse:collapse; font-size:.88rem; width:100%;}.lsn-root .grade-table th, .lsn-root .grade-table td{border:1px solid var(--border); padding:8px 10px; text-align:right; vertical-align:top;}.lsn-root .grade-table th{background:var(--surface-2);}.lsn-root td.g{font-family:var(--mono); direction:ltr; text-align:center; font-weight:600; white-space:normal; overflow-wrap:anywhere; word-break:break-word;}.lsn-root .grade-table.compact td, .lsn-root .grade-table.compact th{padding:5px 7px; font-size:.82rem;}.lsn-root table.rule-table{border-collapse:collapse; font-family:var(--mono); direction:ltr; font-size:.85rem; margin:14px 0; width:100%; max-width:62ch;}.lsn-root table.rule-table td{border:1px solid var(--border); padding:6px 9px; text-align:center; white-space:nowrap;}.lsn-root table.rule-table td.easy{background:color-mix(in srgb, var(--accent) 12%, transparent); font-weight:600;}.lsn-root .bead-legend{display:flex; flex-wrap:wrap; gap:10px; margin:14px 0;}.lsn-root .bead-legend .chip{display:flex; align-items:center; gap:8px;
 background:var(--surface-2); border:1px solid var(--border);
 border-radius:10px; padding:8px 12px; font-size:.85rem;}.lsn-root .bead-legend .glyph{font-family:var(--mono); direction:ltr; font-weight:700; color:var(--accent); font-size:1rem;}.lsn-root .bead-legend .dots{direction:ltr; letter-spacing:1px; color:var(--muted);}.lsn-root .bead-legend .dots .on{color:var(--accent);}.lsn-root .tool-row{display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; margin:12px 0;}.lsn-root .tool-row label{display:flex; flex-direction:column; gap:4px; font-size:.82rem; color:var(--muted);}.lsn-root .tool-row select, .lsn-root .tool-row input[type="number"]{font-family:var(--sans); font-size:.92rem; padding:7px 10px;
 border:1px solid var(--border); border-radius:8px;
 background:var(--surface); color:var(--ink); min-width:6.5em;}.lsn-root .calc-trace{font-family:var(--sans); font-size:.9rem; line-height:2; background:var(--surface-2); border-radius:8px; padding:10px 14px; margin-top:10px;}.lsn-root .abacus-wrap{margin:22px 0; direction:ltr; max-width:100%; width:100%;
 display:flex; flex-direction:column; align-items:center;
 --sx:1; --sy:1;}.lsn-root .abacus-scroll{max-width:100%; overflow-x:auto; overflow-y:hidden; padding-bottom:6px;
 -webkit-overflow-scrolling:touch;
 scrollbar-width:thin; overscroll-behavior-x:contain;}.lsn-root .abacus-scroll.is-overflowing{-webkit-mask-image:linear-gradient(to right, #000 0, #000 88%, transparent 100%);
 mask-image:linear-gradient(to right, #000 0, #000 88%, transparent 100%);}.lsn-root .abacus-frame{display:inline-block;
 background:var(--surface);
 border:1px solid var(--border);
 padding:calc(24px*var(--sy)) calc(22px*var(--sx)) calc(28px*var(--sy));
 border-radius:18px;
 box-shadow:var(--shadow);
 position:relative;
 
 contain:paint;}.lsn-root .rods{position:relative; display:flex; direction:ltr;}.lsn-root .rod{width:calc(38px*var(--sx));
 height:calc(216px*var(--sy));
 position:relative; flex:0 0 auto;}.lsn-root .rod::before{content:""; position:absolute; left:50%; top:2px; bottom:2px; width:calc(27px*var(--sx));
 transform:translateX(-50%); background:var(--surface-2); border-radius:calc(14px*var(--sx));
 box-shadow:inset 0 1px 4px rgba(0,0,0,.10);}.lsn-root .rail{position:absolute; left:50%; top:6px; bottom:6px; width:calc(3px*var(--sx));
 background:color-mix(in srgb, var(--ink) 25%, transparent);
 transform:translateX(-50%); border-radius:2px;}.lsn-root .ab-reckoning-bar{position:absolute; left:calc(-22px*var(--sx)); right:calc(-22px*var(--sx));
 top:calc(78px*var(--sy)); height:calc(7px*var(--sy));
 background:linear-gradient(180deg, var(--accent-2), var(--accent));
 box-shadow:0 1px 3px rgba(0,0,0,.25), 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);
 z-index:3;}.lsn-root .dot{position:absolute; top:calc(-3.5px*var(--sy)); width:calc(7px*var(--sx)); height:calc(7px*var(--sy));
 border-radius:50%;
 background:var(--surface); border:1.5px solid var(--accent); transform:translateX(-50%);}.lsn-root .heaven-zone{position:absolute; top:0; height:calc(78px*var(--sy)); left:0; right:0;}.lsn-root .earth-zone{position:absolute; top:calc(85px*var(--sy)); height:calc(124px*var(--sy)); left:0; right:0;}.lsn-root .heaven-zone.interactive, .lsn-root .earth-zone.interactive{cursor:pointer; touch-action:none; border-radius:4px;
 transition:background-color .12s ease;
 -webkit-user-select:none; user-select:none;}@media (hover:hover) and (pointer:fine){.lsn-root .heaven-zone.interactive:hover, .lsn-root .heaven-zone.interactive:focus-within, .lsn-root .earth-zone.interactive:hover, .lsn-root .earth-zone.interactive:focus-within{background:color-mix(in srgb, var(--accent) 12%, transparent);}}.lsn-root .heaven-zone.interactive:focus-within, .lsn-root .earth-zone.interactive:focus-within{background:color-mix(in srgb, var(--accent) 12%, transparent);}.lsn-root .bead{position:absolute; left:50%; top:0;
 width:calc(31px*var(--sx)); height:calc(25px*var(--sy));
 transform:translate(-50%, 0) rotate(45deg);
 background:
 radial-gradient(circle at 32% 26%, rgba(255,255,255,.6), rgba(255,255,255,0) 48%),
 linear-gradient(135deg, var(--accent-2), var(--accent) 65%, color-mix(in srgb, var(--accent) 55%, var(--ink) 45%));
 border-radius:calc(7px*var(--sx));
 box-shadow:
 0 2px 3px rgba(0,0,0,.3),
 inset -4px -4px 6px rgba(0,0,0,.25),
 inset 3px 3px 4px rgba(255,255,255,.25);
 transition:transform .15s cubic-bezier(.22,.9,.32,1), box-shadow .12s ease, opacity .12s ease;
 z-index:2;}.lsn-root .abacus-frame.resizing .bead{transition:none;}.lsn-root .abacus-frame:not(.readonly) .bead{pointer-events:none;}.lsn-root .bead.inactive{filter:brightness(.85) saturate(.55); opacity:.82;}.lsn-root .bead.active{filter:brightness(1.04) saturate(1.15);
 box-shadow:0 2px 4px rgba(0,0,0,.35), 0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent),
 inset -4px -4px 6px rgba(0,0,0,.25), inset 3px 3px 4px rgba(255,255,255,.25);}.lsn-root .bead.dragging{transition:none; cursor:grabbing; z-index:6;
 will-change:transform;
 box-shadow:0 6px 14px rgba(0,0,0,.4), 0 0 0 3px color-mix(in srgb, var(--accent) 65%, transparent),
 inset -4px -4px 6px rgba(0,0,0,.25), inset 3px 3px 4px rgba(255,255,255,.3);}.lsn-root .heaven-zone.interactive, .lsn-root .earth-zone.interactive{cursor:grab;}.lsn-root .bead:focus-visible{outline:3px solid var(--accent); outline-offset:2px;}.lsn-root .abacus-frame.readonly .bead{cursor:default;}.lsn-root .readout{font-family:var(--mono); direction:ltr; font-size:1.6rem; text-align:center; margin-top:10px;
 letter-spacing:.04em; color:var(--ink);}.lsn-root .readout .label{display:block; font-family:var(--sans); font-size:.7rem; color:var(--muted); letter-spacing:.02em;}.lsn-root .digit-labels{display:flex; direction:ltr; margin-top:4px;}.lsn-root .digit-labels span{width:calc(38px*var(--sx)); text-align:center; font-family:var(--mono); font-size:.78rem; color:var(--muted);}.lsn-root .ab-toolbar{direction:rtl; display:flex; align-items:center; gap:6px;
 margin-top:10px; flex-wrap:wrap;}.lsn-root .ab-toolbar__label{font-size:.72rem; color:var(--muted); margin-inline-end:2px;}.lsn-root .ab-handle{width:30px; height:30px; border-radius:8px;
 display:grid; place-items:center;
 font-family:var(--mono); font-size:.95rem; line-height:1;
 background:var(--surface-2); color:var(--ink); border:1px solid var(--border);
 cursor:ew-resize; touch-action:none; -webkit-user-select:none; user-select:none;
 transition:background-color .12s ease, border-color .12s ease;}@media (pointer:coarse){.lsn-root .ab-handle{width:38px; height:38px;}}.lsn-root .ab-handle[data-axis="y"]{cursor:ns-resize;}.lsn-root .ab-handle[data-axis="both"]{cursor:nwse-resize;}@media (hover:hover) and (pointer:fine){.lsn-root .ab-handle:hover{border-color:var(--accent);}}.lsn-root .ab-handle:active{background:color-mix(in srgb, var(--accent) 18%, var(--surface-2));}.lsn-root .ab-handle:focus-visible{outline:3px solid var(--accent); outline-offset:2px;}.lsn-root .ab-handle--reset{cursor:pointer; color:var(--muted);}.lsn-root .controls{display:flex; flex-wrap:wrap; gap:10px; margin:14px 0; align-items:center; direction:rtl;}.lsn-root button.btn{font-family:var(--sans); font-size:.9rem; font-weight:800;
 padding:12px 20px; border-radius:14px; border:none;
 cursor:pointer; background:var(--accent); color:var(--accent-ink);
 box-shadow:0 var(--btn-y) 0 0 var(--accent-dark);
 transition:transform .1s ease, box-shadow .1s ease, background-color .12s ease, opacity .15s ease;
 touch-action:manipulation; -webkit-user-select:none; user-select:none;
 min-height:46px;
 transform:translateY(0);
 letter-spacing:.01em;}@media (hover:hover) and (pointer:fine){.lsn-root button.btn:hover{filter:brightness(1.04);}.lsn-root button.btn.secondary:hover{background:var(--surface-2);}}.lsn-root button.btn:active{transform:translateY(var(--btn-y)); box-shadow:0 0 0 0 var(--accent-dark);}.lsn-root button.btn.secondary{background:var(--surface); color:var(--blue); border:2px solid var(--border);
 box-shadow:0 var(--btn-y) 0 0 var(--border); padding:10px 18px;}.lsn-root button.btn.secondary:active{box-shadow:0 0 0 0 var(--border);}.lsn-root button.btn:disabled{filter:grayscale(.3); opacity:.6; cursor:default;}.lsn-root button.btn:disabled:active{transform:translateY(0);}.lsn-root button.btn:focus-visible, .lsn-root .opt-btn:focus-visible{outline:3px solid var(--blue); outline-offset:2px;}.lsn-root .lesson-nav button.btn, .lsn-root .lesson-nav button.btn.secondary{padding:9px 16px; font-size:.85rem;}.lsn-root label.toggle{font-size:.85rem; color:var(--muted); display:flex; gap:6px; align-items:center;}.lsn-root .prompt{font-family:var(--mono); direction:ltr; text-align:center; font-size:1.3rem; margin:6px 0 14px;}.lsn-root .feedback{font-weight:600; margin-top:10px; padding:10px 14px; border-radius:8px; display:none; max-width:62ch;}.lsn-root .feedback.show{display:block;}.lsn-root .feedback.good{background:color-mix(in srgb, var(--good) 16%, var(--surface)); color:var(--good);}.lsn-root .feedback.bad{background:color-mix(in srgb, var(--bad) 14%, var(--surface)); color:var(--bad);}.lsn-root .quiz-q{margin:0 0 22px;}.lsn-root .quiz-q p.qtext{font-weight:600; margin-bottom:8px;}.lsn-root .opts{display:flex; flex-direction:column; gap:8px; max-width:52ch;}.lsn-root .opt-btn{text-align:right; padding:13px 16px; border-radius:14px; border:2px solid var(--border);
 border-bottom-width:4px;
 background:var(--surface); color:var(--ink); cursor:pointer; font-family:var(--sans); font-size:.92rem; font-weight:600;
 touch-action:manipulation; min-height:48px;
 transition:transform .08s ease, border-color .12s ease, background-color .12s ease;}@media (hover:hover) and (pointer:fine){.lsn-root .opt-btn:not([disabled]):hover{border-color:var(--blue); background:color-mix(in srgb, var(--blue) 8%, var(--surface));}}.lsn-root .opt-btn:active{transform:translateY(2px);}.lsn-root .opt-btn.selected{border-color:var(--blue); background:color-mix(in srgb, var(--blue) 12%, var(--surface)); color:var(--blue-dark);}.lsn-root .opt-btn.correct{border-color:var(--good); background:color-mix(in srgb, var(--good) 18%, var(--surface)); color:var(--good);}.lsn-root .opt-btn.incorrect{border-color:var(--bad); background:color-mix(in srgb, var(--bad) 16%, var(--surface)); color:var(--bad);}.lsn-root .opt-btn[disabled]{cursor:default;}.lsn-root .opt-btn[disabled]:active{transform:none;}.lsn-root .explain{font-size:.86rem; color:var(--muted); margin-top:6px; display:none; max-width:52ch;}.lsn-root .explain.show{display:block;}.lsn-root .score-banner{font-family:var(--mono); direction:ltr; text-align:right; font-size:1.1rem; margin:14px 0;}.lsn-root .step-caption{font-size:.95rem; max-width:60ch; min-height:2.6em;}.lsn-root .step-caption b{color:var(--accent);}.lsn-root .ltrnum{direction:ltr; unicode-bidi:isolate; display:inline-block; font-family:var(--mono);}.lsn-root .rod.demo-active::before{box-shadow:inset 0 1px 4px rgba(0,0,0,.10), 0 0 0 3px var(--accent),
 0 0 14px 2px color-mix(in srgb, var(--accent) 55%, transparent);
 transition:box-shadow .15s ease;}.lsn-root .demo-progress{font-family:var(--mono); direction:ltr; text-align:left; font-size:.78rem; color:var(--muted); margin-top:2px;}.lsn-root .demo-label{display:inline-block; font-size:.72rem; font-weight:700; color:var(--accent); background:color-mix(in srgb, var(--accent) 14%, var(--surface)); padding:3px 9px; border-radius:100px; margin-bottom:8px;}.lsn-root .demo-frame{text-align:center;}.lsn-root .demo-frame .abacus-wrap{text-align:center;}.lsn-root .demo-frame .controls{justify-content:center;}.lsn-root .demo-frame .step-caption{margin:8px auto; text-align:center;}.lsn-root .demo-frame .demo-progress{text-align:center;}.lsn-root .tile-group{display:flex; align-items:center; gap:14px; flex-wrap:wrap; direction:ltr; margin:14px 0;}.lsn-root .tile-row{display:flex; flex-wrap:wrap; gap:5px; max-width:220px;}.lsn-root .tile{width:22px; height:22px; border-radius:50%; flex:0 0 auto;
 background:linear-gradient(135deg, var(--accent-2), var(--accent));
 box-shadow:0 1px 3px rgba(0,0,0,.2);}.lsn-root .tile.removed{background:var(--surface-2); box-shadow:none; position:relative; opacity:.55;}.lsn-root .tile.removed::after{content:"×"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--bad); font-weight:700; font-size:.9rem;}.lsn-root .tile-op{font-family:var(--mono); font-size:1.4rem; font-weight:700; color:var(--muted);}.lsn-root input.num-input{font-family:var(--mono); direction:ltr; text-align:left; font-size:1rem; padding:9px 10px; width:8em;
 border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--ink);
 min-height:44px;}@media (max-width: 820px){.lsn-root main{padding:24px 18px 60px; padding-inline-end:calc(18px + env(safe-area-inset-right, 0px));}}@media (min-width: 821px) and (max-width: 1080px){.lsn-root main{padding:28px 26px 70px;}}@media (max-width: 480px){.lsn-root main{padding:18px 14px 48px;}.lsn-root .card, .lsn-root .callout{margin:14px 0;}.lsn-root .readout{font-size:1.35rem;}.lsn-root .prompt{font-size:1.1rem;}.lsn-root .controls{gap:8px;}.lsn-root button.btn{padding:11px 14px; font-size:.85rem;}.lsn-root table.ref th, .lsn-root table.ref td{padding:5px 9px; font-size:.85rem;}}@media (prefers-reduced-motion: reduce){.lsn-root .bead{transition:none;}}.lsn-root{max-width:900px; margin-inline:auto; padding:4px 4px 60px;}.lsn-root .lsn-head{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap;}.lsn-root .lsn-head h1{margin:0 0 6px; font-size:1.5rem;}.lsn-root .lsn-head p{margin:0; color:var(--muted); max-width:60ch; font-size:.92rem;}.lsn-root .lsn-part-header{font-weight:800; color:var(--muted); font-size:.82rem; margin:26px 2px 10px; letter-spacing:.02em;}.lsn-root .lsn-part-header:first-of-type{margin-top:6px;}.lsn-root .lsn-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:12px;}.lsn-root .lsn-card{text-align:right; background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:16px; cursor:pointer; display:flex; flex-direction:column; gap:8px;
  transition:border-color .15s ease, transform .1s ease; min-height:0;}.lsn-root .lsn-card:hover{border-color:var(--accent);}.lsn-root .lsn-card:active{transform:scale(.99);}.lsn-root .lsn-card__top{display:flex; align-items:center; justify-content:space-between; gap:8px;}.lsn-root .lsn-card__num{font-family:"JetBrains Mono",monospace; direction:ltr; font-weight:800; font-size:.8rem;
  width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
  background:var(--surface-2); color:var(--muted); flex-shrink:0;}.lsn-root .lsn-card--done .lsn-card__num{background:color-mix(in srgb, var(--good) 20%, var(--surface-2)); color:var(--good);}.lsn-root .lsn-card--inprogress .lsn-card__num{background:color-mix(in srgb, var(--accent) 18%, var(--surface-2)); color:var(--accent);}.lsn-root .lsn-card h3{margin:0; font-size:.98rem;}.lsn-root .lsn-card__meta{font-size:.78rem; color:var(--muted); display:flex; gap:10px; flex-wrap:wrap;}.lsn-root .lsn-card__bar{height:6px; border-radius:100px; background:var(--surface-2); overflow:hidden; margin-top:2px;}.lsn-root .lsn-card__bar-fill{height:100%; background:var(--accent); border-radius:100px;}.lsn-root .lsn-card__pro{font-size:.7rem; font-weight:700; border-radius:100px; padding:2px 9px;
  display:inline-flex; align-items:center; gap:4px; width:fit-content;
  background: linear-gradient(135deg, color-mix(in srgb, #f5c518 30%, transparent), color-mix(in srgb, #f59e0b 30%, transparent));
  color:#b8860b;}:root[data-theme="dark"] .lsn-root .lsn-card__pro{color:#f5c518;}.lsn-root .lsn-breadcrumb{display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-bottom:14px; flex-wrap:wrap;}.lsn-root .lsn-breadcrumb__back{background:transparent; border:1px solid var(--border); color:var(--ink);
  border-radius:100px; padding:7px 14px; font-size:.82rem; font-weight:700; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;}.lsn-root .lsn-breadcrumb__back:hover{border-color:var(--accent);}.lsn-root .lsn-breadcrumb__title{font-weight:800; font-size:.92rem; color:var(--muted);}.lsn-root .lsn-lock-card{border:2px dashed var(--border); border-radius:16px; padding:28px 20px; text-align:center;
  background:color-mix(in srgb, var(--accent) 5%, var(--surface)); max-width:52ch; margin:10px auto;}.lsn-root .lsn-lock-card__icon{font-size:2rem; margin-bottom:6px;}.lsn-root .lsn-lock-card__badge{display:inline-block; font-size:.72rem; font-weight:800; border-radius:100px; padding:3px 12px; margin-bottom:10px;
  background: linear-gradient(135deg, color-mix(in srgb, #f5c518 30%, transparent), color-mix(in srgb, #f59e0b 30%, transparent));
  color:#b8860b;}:root[data-theme="dark"] .lsn-root .lsn-lock-card__badge{color:#f5c518;}.lsn-root .lsn-lock-card h3{margin:0 0 8px; font-size:1.05rem;}.lsn-root .lsn-lock-card p{margin:0 0 16px; color:var(--muted); font-size:.9rem; line-height:1.8;}.lsn-root .lsn-lock-card__btn{font-family:inherit; font-weight:800; font-size:.9rem; border:none; border-radius:14px;
  padding:12px 22px; cursor:pointer; background:var(--accent); color:var(--accent-ink);
  box-shadow:0 4px 0 0 var(--accent-dark);}.lsn-root .lsn-lock-card__btn:active{transform:translateY(4px); box-shadow:none;}.lsn-root .lsn-lock-card__note{font-size:.78rem; color:var(--muted); margin-top:10px;}.lsn-root .lsn-complete{text-align:center; padding:20px 10px 6px; max-width:56ch; margin:0 auto;}.lsn-root .lsn-complete__badge{font-size:2.4rem; margin-bottom:6px;}.lsn-root .lsn-complete h2{margin:0 0 6px;}.lsn-root .lsn-complete__score{font-family:"JetBrains Mono",monospace; direction:ltr; font-weight:800; font-size:1.1rem;
  color:var(--accent); margin-bottom:14px;}.lsn-root .lsn-complete__actions{display:flex; flex-direction:column; gap:10px; margin-top:16px;}.lsn-root .lsn-complete__exam-btn{font-family:inherit; font-weight:800; font-size:.95rem; border:none; border-radius:14px;
  padding:13px 20px; cursor:pointer; background:var(--accent); color:var(--accent-ink);
  box-shadow:0 4px 0 0 var(--accent-dark);}.lsn-root .lsn-complete__exam-btn:active{transform:translateY(4px); box-shadow:none;}.lsn-root .lsn-complete__exam-btn--locked{background:var(--surface-2); color:var(--muted); box-shadow:0 4px 0 0 var(--border);}.lsn-root .lsn-complete__exam-sub{font-size:.78rem; color:var(--muted); margin-top:-4px;}.lsn-root .lsn-complete__secondary{font-family:inherit; font-weight:700; font-size:.88rem; border:2px solid var(--border);
  background:transparent; color:var(--ink); border-radius:14px; padding:10px 18px; cursor:pointer;}.lsn-root .lsn-complete__secondary:hover{border-color:var(--accent);}@media (max-width: 480px){.lsn-root .lsn-grid{grid-template-columns:1fr;}}.lsn-root .lsn-center{display: flex; flex-direction: column; gap: 18px;}.lsn-root .lsn-hero{display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--surface-2)), var(--surface-2) 60%);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 20px;}.lsn-root .lsn-hero__main{min-width: 0;}.lsn-root .lsn-hero__eyebrow{display: block; font-size: .74rem; font-weight: 700; letter-spacing: .02em;
  color: var(--accent); text-transform: none; margin-bottom: 4px;}.lsn-root .lsn-hero__title{margin: 0 0 4px; font-size: 1.28rem; line-height: 1.4;}.lsn-root .lsn-hero__desc{margin: 0 0 12px; color: var(--muted); font-size: .88rem; line-height: 1.7;}.lsn-root .lsn-hero__stats{display: flex; flex-wrap: wrap; gap: 8px;}.lsn-root .lsn-stat{display: flex; align-items: center; gap: 7px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 6px 11px;}.lsn-root .lsn-stat__icon{font-size: 1rem; line-height: 1;}.lsn-root .lsn-stat b{display: block; font-size: .92rem; line-height: 1.3;}.lsn-root .lsn-stat span{display: block; font-size: .7rem; color: var(--muted);}.lsn-root .lsn-hero__cta{flex: none; white-space: nowrap; align-self: center;}.lsn-root .lsn-ring{--size: 52px;
  width: var(--size); height: var(--size); flex: none;
  border-radius: 50%;
  display: grid; place-items: center;
  background: conic-gradient(var(--accent) calc(var(--pct) * 1%), color-mix(in srgb, var(--ink) 16%, transparent) 0);
  transition: background .3s ease;}.lsn-root .lsn-ring--lg{--size: 84px;}.lsn-root .lsn-ring--sm{--size: 40px;}.lsn-root .lsn-ring__inner{width: calc(var(--size) - 9px); height: calc(var(--size) - 9px);
  border-radius: 50%; background: var(--surface);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  line-height: 1.1;}.lsn-root .lsn-ring__value{font-size: 1.05rem; font-weight: 800;}.lsn-root .lsn-ring__label{font-size: .6rem; color: var(--muted);}.lsn-root .lsn-track{background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 16px; padding: 12px 10px;}.lsn-root .lsn-track__row{display: flex; gap: 4px; align-items: flex-start;
  overflow-x: auto; scrollbar-width: none;
  -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;}.lsn-root .lsn-track__row::-webkit-scrollbar{display: none;}.lsn-root .lsn-track__node{appearance: none; font-family: inherit;
  cursor: pointer; flex: 1 0 auto; min-width: 72px; max-width: 120px;
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 6px 4px; border-radius: 12px;
  
  background: var(--surface); border: 1px solid var(--border);
  transition: background .15s ease, border-color .15s ease, transform .12s ease;}.lsn-root .lsn-track__node:active{transform: scale(.96);}.lsn-root .lsn-track__node.is-active{background: color-mix(in srgb, var(--accent) 12%, var(--surface));
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));}.lsn-root .lsn-track__node.is-active .lsn-track__label{color: var(--accent); font-weight: 700;}.lsn-root .lsn-track__num{font-size: .82rem; font-weight: 800;}.lsn-root .lsn-track__node.is-done .lsn-track__num{color: var(--good);}.lsn-root .lsn-track__label{font-size: .68rem; color: var(--muted); text-align: center; line-height: 1.35;
  
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;}@media (hover: hover) and (pointer: fine){.lsn-root .lsn-track__node:hover:not(.is-active){background: color-mix(in srgb, var(--accent) 8%, var(--surface)); border-color: color-mix(in srgb, var(--accent) 25%, var(--border));}}.lsn-root .lsn-panel{background: var(--surface); border: 1px solid var(--border);
  border-radius: 18px; padding: 16px;}.lsn-root .lsn-panel__head{display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin-bottom: 6px;}.lsn-root .lsn-panel__head h2{margin: 0 0 2px; font-size: 1.05rem;}.lsn-root .lsn-panel__head p{margin: 0; font-size: .78rem; color: var(--muted);}.lsn-root .lsn-panel__bar{flex: 1 1 140px; min-width: 120px; height: 7px; margin-top: 6px;
  background: color-mix(in srgb, var(--ink) 12%, transparent);
  border-radius: 99px; overflow: hidden;}.lsn-root .lsn-panel__bar-fill{height: 100%; border-radius: 99px;
  background: linear-gradient(90deg, var(--accent-2), var(--accent));
  transition: width .35s ease;}.lsn-root .lsn-snake{margin: 14px 0 0;}.lsn-root .lsn-snake__row{display: flex; flex-wrap: wrap; align-items: flex-start;
  gap: 10px 0; position: relative; z-index: 1;}.lsn-root .lsn-snake__unit{display: flex; align-items: flex-start; flex: 0 0 auto;}.lsn-root .lsn-snake__row > .lsn-snake__unit:not(:last-child), .lsn-root .lsn-snake__subrow > .lsn-snake__unit:not(:last-child){flex: 1 1 auto;}.lsn-root .lsn-snake__connector{display: flex; align-items: center; justify-content: center;
  flex: 1 1 16px; min-width: 16px; max-width: 60px;
  height: 40px; margin-top: 8px; pointer-events: none; overflow: hidden;}.lsn-root .lsn-snake__connector svg{width: 100%; height: 100%; overflow: visible;}.lsn-root .lsn-snake__conn-bg{fill: none; stroke: color-mix(in srgb, var(--ink) 22%, transparent); stroke-width: 2; stroke-linecap: round;}.lsn-root .lsn-snake__conn-flow{fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round;
  stroke-dasharray: 3 7; opacity: .85; animation: examPathConnFlow 1.6s linear infinite;}.lsn-root .lsn-snake__conn-arrow{fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  opacity: .7; transform-box: fill-box; transform-origin: center;
  animation: examPathConnDance 1.3s ease-in-out infinite;}.lsn-root .lsn-snake__row--snaked{flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0;}.lsn-root .lsn-snake__subrow{display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 10px 0; justify-content: flex-start;}.lsn-root .lsn-snake__subrow--rev{flex-direction: row-reverse;}.lsn-root .lsn-snake__subrow--rev .lsn-snake__unit{flex-direction: row-reverse;}.lsn-root .lsn-snake__connector--rev{transform: scaleX(-1);}.lsn-root .lsn-snake__rowbreak{position: relative; height: 32px; pointer-events: none;}.lsn-root .lsn-snake__rowbreak svg{position: absolute; top: 0; height: 36px; overflow: visible;}.lsn-root .lsn-snake__node{appearance: none; font-family: inherit;
  cursor: pointer; position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  width: 92px; flex: none; padding: 10px 4px 12px; border-radius: 14px;
  
  background: var(--surface-2); border: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(16, 18, 28, .04);
  transition: background .15s ease, border-color .15s ease, transform .12s ease;}.lsn-root .lsn-snake__node:active{transform: scale(.95);}.lsn-root .lsn-snake__node.is-selected{background: color-mix(in srgb, var(--accent) 14%, var(--surface-2));
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));}.lsn-root .lsn-snake__node.is-selected .lsn-snake__label{color: var(--accent); font-weight: 700;}.lsn-root .lsn-snake__num{font-size: .95rem; font-weight: 800;}.lsn-root .lsn-snake__node.is-done .lsn-snake__num{color: var(--good);}.lsn-root .lsn-snake__label{font-size: .7rem; color: var(--muted); text-align: center; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}.lsn-root .lsn-snake__lock{position: absolute; top: 4px; inset-inline-end: 6px; font-size: .72rem;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 999px; padding: 1px 4px; line-height: 1.3;}.lsn-root .lsn-snake__topic{position: absolute; top: 4px; inset-inline-start: 6px; font-size: .82rem;
  width: 20px; height: 20px; display: grid; place-items: center;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 999px; line-height: 1;}@media (hover: hover) and (pointer: fine){.lsn-root .lsn-snake__node:hover:not(.is-selected){background: color-mix(in srgb, var(--accent) 9%, var(--surface-2)); border-color: color-mix(in srgb, var(--accent) 30%, var(--border));}}.lsn-root .lsn-detail{background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 18px; padding: 16px; scroll-margin-top: 80px;}.lsn-root .lsn-detail:focus{outline: none;}.lsn-root .lsn-detail__top{display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px;}.lsn-root .lsn-detail__top h2{margin: 0; font-size: 1.1rem; flex: 1 1 auto; min-width: 0;}.lsn-root .lsn-detail__badge{font-size: .7rem; font-weight: 700; color: var(--accent);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  border-radius: 999px; padding: 3px 9px; flex: none;}.lsn-root .lsn-detail__done{font-size: .74rem; color: var(--good); font-weight: 700; flex: none;}.lsn-root .lsn-detail__progress{display: flex; align-items: center; gap: 10px; margin-bottom: 12px;}.lsn-root .lsn-detail__progress span{font-size: .74rem; color: var(--muted); flex: none;}.lsn-root .lsn-detail__bar{flex: 1 1 auto; height: 7px; border-radius: 99px; overflow: hidden;
  background: color-mix(in srgb, var(--ink) 12%, transparent);}.lsn-root .lsn-detail__bar-fill{height: 100%; border-radius: 99px;
  background: linear-gradient(90deg, var(--accent-2), var(--accent));
  transition: width .35s ease;}.lsn-root .lsn-detail__subs{list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 4px;}.lsn-root .lsn-detail__sub{display: flex; align-items: center; gap: 8px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 10px; padding: 8px 10px; font-size: .82rem;}.lsn-root .lsn-detail__sub-icon{flex: none; font-size: .88rem;}.lsn-root .lsn-detail__sub-label{flex: 1 1 auto; min-width: 0; line-height: 1.5;}.lsn-root .lsn-detail__sub.is-seen .lsn-detail__sub-label{color: var(--muted);}.lsn-root .lsn-detail__sub.is-locked{border-style: dashed;}.lsn-root .lsn-detail__sub-tag{flex: none; font-size: .66rem; font-weight: 700; color: var(--accent);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  border-radius: 999px; padding: 2px 7px;}.lsn-root .lsn-detail__note{font-size: .78rem; color: var(--muted); line-height: 1.7; margin: 0 0 12px;
  background: var(--surface); border: 1px dashed var(--border);
  border-radius: 10px; padding: 9px 11px;}.lsn-root .lsn-detail__actions{display: flex; gap: 8px; flex-wrap: wrap;}.lsn-root .lsn-detail__actions .btn{flex: 1 1 160px; margin-top: 0;}@media (max-width: 720px){.lsn-root .lsn-hero{grid-template-columns: auto 1fr; gap: 14px; padding: 16px;}.lsn-root .lsn-hero__cta{grid-column: 1 / -1; width: 100%;}.lsn-root .lsn-hero__title{font-size: 1.12rem;}.lsn-root .lsn-ring--lg{--size: 68px;}.lsn-root .lsn-ring__value{font-size: .92rem;}}@media (max-width: 400px){.lsn-root .lsn-hero{padding: 14px;}.lsn-root .lsn-hero__stats{gap: 6px;}.lsn-root .lsn-stat{padding: 5px 8px;}.lsn-root .lsn-panel, .lsn-root .lsn-detail{padding: 13px; border-radius: 15px;}}@media (prefers-reduced-motion: reduce){.lsn-root .lsn-ring, .lsn-root .lsn-panel__bar-fill, .lsn-root .lsn-detail__bar-fill, .lsn-root .lsn-track__node, .lsn-root .lsn-snake__node{transition: none;}.lsn-root .lsn-snake__conn-flow, .lsn-root .lsn-snake__conn-arrow{animation: none;}}