@layer components{.lp{background:var(--bg);grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.lp-loading,.lp-center{text-align:center;align-content:center;place-items:center;gap:var(--s-4);padding:var(--s-6) var(--gutter);grid-template-rows:none;display:grid}.lp-center h1{font-size:var(--fs-2xl)}.lp-center .muted{color:var(--muted);max-width:42ch}.lp-actions{gap:var(--s-3);flex-wrap:wrap;justify-content:center;display:flex}.lp-guide{width:120px;display:block}.lp-guide.sm{width:44px}.lp-guide svg{width:100%;height:auto}.lp-top{gap:var(--s-3);padding:var(--s-4) var(--gutter);grid-template-columns:auto 1fr auto auto;align-items:center;width:100%;max-width:760px;margin-inline:auto;display:grid}.lp-close{width:36px;height:36px;color:var(--muted);border-radius:50%;place-items:center;font-size:18px;display:grid}.lp-close:hover{color:var(--text);background:#ffffff0f}.lp-bar{background:#ffffff14;border-radius:99px;height:12px;overflow:hidden}.lp-bar i{background:var(--gold);height:100%;transition:width .4s var(--ease);border-radius:99px;display:block}.lp-xp{font-size:var(--fs-xs);color:var(--muted)}.lp-stage{width:100%;max-width:640px;padding:var(--s-5) var(--gutter) var(--s-8);animation:lp-in .35s var(--ease) both;margin-inline:auto}@keyframes lp-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.lp-stage{animation:none}.lp-bar i{transition:none}}.concept{gap:var(--s-4);display:grid}.concept h2{font-size:var(--fs-2xl)}.concept p{font-size:var(--fs-md);color:var(--text);line-height:1.6}.concept em,.act-prompt em{color:var(--gold);font-style:italic;font-family:var(--serif);font-size:1.1em}.act-kicker{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.act{gap:var(--s-5);display:grid}.act-prompt{font-family:var(--sans);font-weight:600;font-size:var(--fs-lg);line-height:1.4}.act-prompt.statement{font-family:var(--serif);font-weight:400;font-size:var(--fs-2xl)}.act-hint{color:var(--muted);font-size:var(--fs-sm);justify-self:start}.act-answer{color:var(--up);font-weight:600}.opts{gap:var(--s-3);display:grid}.opts.two{grid-template-columns:1fr 1fr}.opt{align-items:center;gap:var(--s-3);text-align:left;border:2px solid var(--line-2);background:var(--surface);min-height:56px;font-size:var(--fs-base);border-radius:14px;padding:16px 18px;font-weight:500;transition:border-color .15s,background .15s,transform .1s;display:flex}.opt:hover:not(:disabled){border-color:#ffffff4d}.opt:active:not(:disabled){transform:translateY(1px)}.opt.big{font-size:var(--fs-md);justify-content:center;min-height:72px;font-weight:600}.opt-k{font-family:var(--mono);font-size:var(--fs-xs);color:var(--faint);border:1px solid var(--line-2);border-radius:6px;flex:none;place-items:center;width:22px;height:22px;display:grid}.opt.picked{border-color:var(--gold);background:#e1af6114}.opt.right{border-color:var(--up);background:#26a69a1f}.opt.wrong{border-color:var(--down);background:#ef53501a}.opt:disabled{cursor:default}.given{gap:var(--s-2);flex-wrap:wrap;display:flex}.given div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.given dt{font-size:var(--fs-xs);color:var(--muted)}.given dd{font-family:var(--mono);font-weight:600}.num-in{align-items:center;gap:var(--s-2);border:2px solid var(--line-2);background:var(--surface);font-family:var(--mono);font-size:var(--fs-xl);border-radius:14px;padding:6px 16px;display:flex}.num-in:focus-within{border-color:var(--gold)}.num-in input{min-width:0;font:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:8px 0}.num-in span{color:var(--muted);font-size:var(--fs-md);white-space:nowrap}.dd{gap:var(--s-4);grid-template-columns:1fr auto;align-items:end;display:grid}.dd-bars{border-bottom:1px solid var(--line-2);align-items:flex-end;gap:4px;height:160px;padding-top:8px;display:flex;position:relative}.dd-bars i{background:var(--series-1,#3987e5);transition:height .3s var(--ease);border-radius:4px 4px 0 0;flex:1}.dd-bars i.low{background:var(--down)}.dd-floor{border-top:1px dashed var(--muted);color:var(--muted);text-align:right;font-size:11px;position:absolute;left:0;right:0;transform:translateY(-1px)}.dd-floor:before{content:"Floor "}.dd-read{text-align:right;font-size:var(--fs-xs);color:var(--muted);gap:2px;display:grid}.dd-read b{font-family:var(--mono);font-size:var(--fs-xl)}.dd-read b.ok{color:var(--up)}.dd-read b.bad{color:var(--down)}.dd-slider{gap:var(--s-2);font-size:var(--fs-sm);display:grid}.dd-slider b{font-family:var(--mono)}.dd-slider small{color:var(--muted)}.dd-slider input{width:100%;accent-color:var(--gold);height:28px}.tap-chart{background:var(--bg-2);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:12px;width:100%;height:auto}.tap-chart .up line,.tap-chart .up rect{stroke:var(--up);fill:var(--up)}.tap-chart .down line,.tap-chart .down rect{stroke:var(--down);fill:var(--down)}.tap-chart line{stroke-width:1.4px}.tap-entry{stroke-dasharray:4 3;stroke:var(--c-entry)!important}.tap-swing{stroke-dasharray:2 3;stroke:var(--muted)!important}.tap-stop{stroke:var(--c-sl)!important;stroke-width:2.5px!important}.tap-stop.ok{stroke:var(--up)!important}.tap-zone{fill:#26a69a2e}.tap-label{fill:var(--muted);font-size:12px;font-family:var(--mono)}.tap-label.entry{fill:var(--c-entry)}.tap-label.stop{fill:var(--c-sl)}.seq{gap:var(--s-2);counter-reset:none;display:grid}.seq-slot{gap:var(--s-3);border:2px dashed var(--line-2);border-radius:12px;grid-template-columns:28px 1fr;align-items:center;min-height:52px;padding:6px 10px;display:grid}.seq-slot.filled{background:var(--surface);border-style:solid}.seq-slot.right{border-color:var(--up)}.seq-slot.wrong{border-color:var(--down)}.seq-n{font-family:var(--mono);font-size:var(--fs-xs);color:var(--faint);text-align:center}.seq-slot button{text-align:left;padding:6px 0;font-weight:500}.seq-empty{color:var(--faint);font-size:var(--fs-sm)}.bank{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip-btn{border:2px solid var(--line-2);background:var(--surface);font-weight:500;font-size:var(--fs-sm);border-radius:12px;padding:10px 14px}.chip-btn:disabled{opacity:.25}.seq-answer{gap:2px;padding-left:1.2em;font-weight:500;list-style:decimal;display:grid}.alert-card{align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4);border:1px solid rgb(var(--accent-rgb,225 175 97) / .5);background:var(--surface);border-radius:14px;display:flex}.alert-card>div{gap:2px;display:grid}.alert-card small{color:var(--muted);font-size:var(--fs-xs)}.alert-card span:not(.tool){color:var(--muted);font-size:var(--fs-sm)}.facts-list{gap:var(--s-2);display:grid}.facts-list li{background:var(--bg-2);border:1px solid var(--line);font-size:var(--fs-sm);border-radius:10px;padding:10px 14px}.vis-streak{flex-wrap:wrap;align-items:flex-end;gap:6px;display:flex}.vis-streak i{background:var(--down);opacity:.85;border-radius:4px;width:18px;height:34px}.vis-streak span{width:100%;font-size:var(--fs-xs);color:var(--muted);font-family:var(--mono)}.vis-formula{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.vis-formula b{border:1px solid var(--line-2);background:var(--surface);border-radius:10px;padding:8px 12px;font-weight:600}.vis-formula b.hl{border-color:var(--gold);color:var(--gold-hi)}.vis-formula span{color:var(--muted);font-family:var(--mono)}.vis-stop{width:100%;max-width:360px;height:auto}.vis-stop polyline{fill:none;stroke:var(--text);stroke-width:2px}.vis-stop circle{fill:var(--gold)}.vis-stop .sl{stroke:var(--c-sl);stroke-width:2px;stroke-dasharray:4 3}.vis-stop text{fill:var(--muted);font-size:9px;font-family:var(--mono)}.lp-foot{border-top:1px solid var(--line);background:var(--bg-2);transition:background .2s;position:sticky;bottom:0}.lp-foot.is-right{background:#0e2523;border-top-color:#26a69a80}.lp-foot.is-wrong{background:#2a1314;border-top-color:#ef535073}.lp-foot-in{max-width:720px;padding:var(--s-4) var(--gutter) max(var(--s-4), env(safe-area-inset-bottom));gap:var(--s-3);margin-inline:auto;display:grid}.lp-feedback b{font-size:var(--fs-lg)}.is-right .lp-feedback b{color:#5fd4c7}.is-wrong .lp-feedback b{color:#ff8a80}.lp-feedback{gap:4px;display:grid}.lp-feedback p{color:var(--text);font-size:var(--fs-base);max-width:62ch;line-height:1.55}.lp-go{width:100%;min-height:52px;font-size:var(--fs-md);justify-content:center}.lp-go:disabled{opacity:.4;cursor:not-allowed}@media (width>=720px){.lp-go{width:auto;min-width:180px}}.lp-done h1{font-size:var(--fs-h2)}.lp-stats{gap:var(--s-3);grid-template-columns:repeat(3,minmax(0,1fr));width:min(460px,100%);display:grid}.lp-stats div{padding:var(--s-4);border:1px solid var(--line-2);background:var(--surface);border-radius:14px;gap:2px;display:grid}.lp-stats b{font-size:var(--fs-xl);font-family:var(--serif);color:var(--gold-hi);font-weight:400}.lp-stats span{font-size:var(--fs-xs);color:var(--muted)}.lp-save{gap:var(--s-2);padding:var(--s-4) var(--s-5);background:#e1af610f;border:1px solid #e1af6166;border-radius:14px;max-width:460px;display:grid}.pop{animation:.5s cubic-bezier(.34,1.56,.64,1) both lp-pop}@keyframes lp-pop{0%{opacity:0;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.pop{animation:none}}.lp-outline{display:none}.lp-guide.xs{flex:none;width:36px}.lp-outline-course{align-items:center;gap:var(--s-3);display:flex}.lp-outline-course small,.lp-outline-unit>small{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);display:block}.lp-outline-course b{font-family:var(--serif);font-weight:400;font-size:var(--fs-xl)}.lp-outline-stats{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.lp-outline-stats div{border:1px solid var(--line);text-align:center;border-radius:12px;padding:10px;display:grid}.lp-outline-stats b{font-family:var(--mono);font-size:var(--fs-md);color:var(--gold-hi)}.lp-outline-stats span{color:var(--muted);font-size:11px}.lp-outline-unit ol{margin-top:var(--s-3);gap:2px;display:grid;position:relative}.lp-outline-unit li{border-radius:12px}.lp-outline-link{gap:var(--s-3);color:inherit;border-radius:12px;grid-template-columns:28px 1fr;align-items:start;padding:10px 8px;display:grid}a.lp-outline-link:hover{background:#ffffff0d}.lp-outline-unit li.current{background:#ffffff0a}.lp-outline-unit li b{font-size:var(--fs-sm);font-weight:600;display:block}.lp-outline-unit li small{color:var(--muted);font-size:var(--fs-xs)}.lp-outline-unit li.todo b{color:var(--muted)}.lp-outline-dot{width:28px;height:28px;font-family:var(--mono);border:2px solid var(--line-2);color:var(--muted);border-radius:50%;place-items:center;font-size:12px;display:grid}.lp-outline-unit li.done .lp-outline-dot{background:var(--up);border-color:var(--up);color:#062a27}.lp-outline-unit li.current .lp-outline-dot{border-color:var(--gold);color:var(--gold-hi)}.lp-outline-bar{background:#ffffff14;border-radius:99px;height:6px;margin-top:6px;display:block;overflow:hidden}.lp-outline-bar i{background:var(--gold);height:100%;transition:width .4s var(--ease);border-radius:99px;display:block}.lp-outline-exit{margin-top:var(--s-2);justify-content:center;align-items:center;gap:8px;display:flex}.lp-menu{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.lp-menu:hover{color:var(--text);background:#ffffff0f}.lp-menu svg{width:20px;height:20px}.lp-outline-close,.lp-scrim{display:none}@media (width<=1079px){.lp-with-outline>.lp-outline.open{align-content:start;gap:var(--s-5);z-index:90;width:min(330px,86vw);padding:var(--s-5);border-right:1px solid var(--line-2);background:var(--bg-2);animation:lp-drawer .22s var(--ease);display:grid;position:fixed;inset:0 auto 0 0;overflow-y:auto}.lp-outline.open .lp-outline-close{display:grid;position:absolute;top:12px;right:12px}.lp-scrim.open{z-index:89;background:#0009;display:block;position:fixed;inset:0}}@keyframes lp-drawer{0%{opacity:0;transform:translate(-24px)}}@media (prefers-reduced-motion:reduce){.lp-outline.open{animation:none}}@media (width>=1080px){.lp-menu{display:none}.lp-top{grid-template-columns:1fr auto auto}.lp.lp-with-outline{grid-template-rows:auto 1fr auto;grid-template-columns:300px minmax(0,1fr)}.lp-with-outline>.lp-outline{align-content:start;gap:var(--s-5);height:100dvh;padding:var(--s-5) var(--s-5);border-right:1px solid var(--line);background:var(--bg-2);grid-area:1/1/-1;display:grid;position:sticky;top:0;overflow-y:auto}.lp-with-outline>.lp-top,.lp-with-outline>.lp-stage,.lp-with-outline>.lp-foot{grid-column:2}}.lc{background:var(--bg-2);border:1px solid var(--line);touch-action:manipulation;border-radius:12px;width:100%;height:auto}.lc.tappable{cursor:pointer;-webkit-tap-highlight-color:transparent}.lc .up line,.lc .up rect{stroke:var(--up);fill:var(--up)}.lc .down line,.lc .down rect{stroke:var(--down);fill:var(--down)}.lc line{stroke-width:1.4px}.lc .lc-hit{stroke-dasharray:3 3;fill:#ffffff0a!important;stroke:#ffffff2e!important}.lc g.picked rect:not(.lc-hit),.lc g.picked line{stroke:var(--gold)!important;fill:var(--gold)!important}.lc g.picked .lc-hit{fill:#e1af611f!important;stroke:var(--gold)!important}.lc-zone{fill:#67d4f529;stroke:#67d4f573;stroke-dasharray:4 4;stroke-width:1px}.lc-line line{stroke-dasharray:4 3;stroke-width:1.6px}.lc-line text{font-family:var(--mono);font-size:12px}.lc-line.entry line{stroke:var(--c-entry)}.lc-line.entry text{fill:var(--c-entry)}.lc-line.stop line{stroke:var(--c-sl)}.lc-line.stop text{fill:var(--c-sl)}.lc-line.tp line{stroke:var(--c-tp3)}.lc-line.tp text{fill:var(--c-tp3)}.lc-line.level line{stroke:var(--muted)}.lc-line.level text{fill:var(--muted)}.lc-mark circle{fill:var(--surface-2);stroke:var(--gold);stroke-width:1.5px}.lc-mark text{fill:var(--gold-hi);font-family:var(--mono);font-size:11px;font-weight:600}.lc-arrow{fill:var(--gold)}.act-sub{color:var(--muted);font-size:var(--fs-sm)}.outcome-note{color:var(--muted);min-height:3em}.outcome-note.on{color:var(--text)}.lv-results{font-family:var(--mono);font-size:var(--fs-sm);gap:4px;display:grid}.lv-results .ok{color:var(--up)}.lv-results .bad{color:#ff8a80}.worked{gap:var(--s-2);counter-reset:w;display:grid}.worked li{gap:var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr auto;align-items:center;padding:12px 14px;display:grid}.worked li>span{color:var(--muted);font-size:var(--fs-sm)}.worked li>b{font-family:var(--mono);font-size:var(--fs-md)}.worked li.right{border-color:var(--up)}.worked li.wrong{border-color:var(--down)}.num-in.sm{font-size:var(--fs-md);border-radius:10px;min-width:140px;padding:2px 10px}.num-in.sm input{width:90px;padding:6px 0}.wr{gap:var(--s-4);grid-template-columns:1fr auto;align-items:end;display:grid}.wr-bars{border-bottom:1px solid var(--line-2);align-items:flex-end;gap:3px;height:120px;display:flex}.wr-bars i{border-radius:3px 3px 0 0;flex:1}.wr-bars i.win{background:var(--up)}.wr-bars i.loss{background:var(--down);opacity:.8}.recap-list{gap:var(--s-2);display:grid}.recap-list li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px 40px;position:relative}.recap-list li:before{content:"✓";color:var(--up);font-weight:700;position:absolute;left:14px}.teaser{font-family:var(--serif);font-size:var(--fs-lg);border:1px dashed #e1af6180;border-radius:12px;gap:4px;padding:14px 16px;display:grid}.teaser>span:first-child{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.vis-alert{background:var(--surface);font-family:var(--mono);font-size:var(--fs-xs);border:1px solid #ef535080;border-radius:12px;gap:4px;padding:12px 14px;display:grid}.vis-alert b{color:#ff8a80;font-size:var(--fs-sm)}.lp-foot.is-neutral{background:#0d1d24;border-top-color:#67d4f573}.is-neutral .lp-feedback b{color:var(--c-entry)}.lp-notice{text-align:center;color:var(--faint);grid-column:1/-1;margin-top:-4px;font-size:11px}.lp-next-steps{gap:var(--s-2);text-align:left;max-width:460px;padding:var(--s-4) var(--s-5);border:1px solid var(--line-2);background:var(--surface);border-radius:14px;display:grid}.lp-next-steps ul{gap:var(--s-2);color:var(--muted);font-size:var(--fs-sm);padding-left:1.1em;list-style:outside;display:grid}.lp-feedback:empty{display:none}.lp-btns{gap:var(--s-2);justify-content:flex-end;display:flex}.lp-btns .lp-go{flex:1}.lp-back{min-width:52px;min-height:52px;padding-inline:var(--s-4);justify-content:center}.lp-back span{display:none}.lp-back:disabled{opacity:.35;cursor:not-allowed}@media (width>=720px){.lp-btns .lp-go{flex:none}.lp-btns .lp-back{margin-right:auto}.lp-back span{display:inline}}dialog.lp-leave{width:min(440px,100vw - 32px);padding:var(--s-6) var(--s-5) var(--s-5);border:1px solid var(--line-2);background:var(--surface);color:var(--text);text-align:center;gap:var(--s-3);border-radius:20px;justify-items:center;margin:auto;display:grid}dialog.lp-leave::backdrop{background:#000000b3}dialog.lp-leave h2{font-family:var(--serif);font-size:var(--fs-xl);font-weight:400;line-height:1.15}.lp-leave-actions{gap:var(--s-2);width:100%;margin-top:var(--s-2);display:grid}.lp-leave-actions .btn{justify-content:center}.lp-leave-links{justify-content:center;gap:var(--s-2) var(--s-4);font-size:var(--fs-sm);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.lp-leave-links button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.explainer{gap:var(--s-5)}.ex-block{gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--line);display:grid}.ex-block h3{font-size:var(--fs-lg);align-items:center;gap:10px;font-weight:550;display:flex}.ex-block h3 span{border:1px solid var(--line-2);width:24px;height:24px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);border-radius:50%;place-items:center;display:grid}.ex-block p{font-size:var(--fs-md);line-height:1.6}.ex-block em{color:var(--gold);font-style:italic;font-family:var(--serif);font-size:1.1em}.term{font:inherit;color:inherit;cursor:help;text-underline-offset:4px;background:0 0;border:0;margin:0;padding:0;text-decoration:underline 1.5px dotted #e1af61b3;display:inline}.term:hover,.term:focus-visible{color:var(--gold-hi)}.term-pop{z-index:80;gap:var(--s-4);width:min(520px,100vw - 32px);padding:var(--s-4) var(--s-5);border:1px solid var(--line-2);background:var(--surface-2);border-radius:16px;align-items:center;display:flex;position:fixed;bottom:120px;left:50%;transform:translate(-50%);box-shadow:0 24px 48px -16px #000000e6}.term-pop>div{flex:1}.term-pop b{font-family:var(--serif);font-size:var(--fs-lg);font-weight:400}.term-pop p{color:var(--muted);font-size:var(--fs-sm);margin-top:2px}@media (width>=1080px){.lp-with-outline .term-pop{left:calc(50% + 150px)}}.recap-words{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recap-words>span{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:4px}.chip-term{border:1px solid var(--line-2);font-size:var(--fs-sm);border-radius:99px;padding:4px 12px;text-decoration:none}.vis-candles{justify-self:center;width:min(100%,340px);height:auto}.vis-candles .up line,.vis-candles .up rect{stroke:var(--up);fill:var(--up);stroke-width:2px}.vis-candles .down line,.vis-candles .down rect{stroke:var(--down);fill:var(--down);stroke-width:2px}.vis-candles .lbl text{fill:var(--text);font-family:var(--mono);font-size:12px}.vis-candles .tag text{fill:var(--muted);font-family:var(--mono);font-size:11px;font-style:italic}.vis-buysell{gap:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.vis-buysell>div{padding:var(--s-4);border:1px solid var(--line);background:var(--surface);border-radius:14px;justify-items:start;gap:4px;display:grid}.vis-buysell .arrow{font-size:28px;line-height:1}.vis-buysell .up .arrow{color:var(--up)}.vis-buysell .down .arrow{color:var(--down)}.vis-buysell small{color:var(--muted);font-size:var(--fs-sm)}.lp-review{border:1px solid var(--line-2);background:var(--surface);font-size:var(--fs-sm);color:var(--muted);border-radius:10px;flex-wrap:wrap;grid-column:1/-1;justify-content:center;align-items:center;gap:6px 10px;padding:8px 12px;display:flex}.lp-review .link-btn{color:var(--text);text-underline-offset:3px;text-decoration:underline}.alert-plain{color:var(--gold);border:1px solid var(--line-2);place-items:center;display:grid}.alert-plain svg{width:20px;height:20px}}.tap-label.stop.ok{fill:var(--up)}.lp-done{isolation:isolate;position:relative;overflow:hidden}.lp-confetti{pointer-events:none;z-index:-1;position:absolute;inset:0;overflow:hidden}.lp-confetti i{background:var(--gold);width:8px;height:14px;animation:1.7s cubic-bezier(.12,.65,.3,1) both lp-confetti-burst;animation-delay:var(--burst-delay);border-radius:2px;margin:-7px -4px;position:absolute;top:50%;left:50%}.lp-confetti i:nth-child(3n){background:#6bb9a0}.lp-confetti i:nth-child(3n+1){background:#f3eee5;border-radius:50%;width:6px;height:6px}.lp-reward-pop{animation:.55s cubic-bezier(.2,.8,.3,1.3) both lp-reward-pop;display:inline-block}.lp-sync{min-height:28px;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.lp-sync-error{color:#ffb5a9}.lp-save-spinner{border:2px solid var(--line-2);border-top-color:var(--gold);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.8s linear infinite lp-save-spin}.lp-course-return{color:var(--muted);padding:8px;font-size:13px}.lp-course-return[aria-disabled=true]{opacity:.5;cursor:wait}@keyframes lp-confetti-burst{0%{opacity:0;transform:translate(0)scale(.2)rotate(0)}5%{opacity:1}65%{transform:translate(var(--burst-x),var(--burst-y)) scale(1) rotate(var(--burst-spin));opacity:1}to{transform:translate(calc(var(--burst-x) * 1.12),calc(var(--burst-y) + 100px)) scale(.6) rotate(calc(var(--burst-spin) * 1.4));opacity:0}}@keyframes lp-reward-pop{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}@keyframes lp-save-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.lp-confetti{display:none}.lp-reward-pop,.lp-save-spinner{animation:none}}.lp-celebration{justify-items:center;gap:20px;width:100%;display:grid}.lp-completion-details{justify-items:center;gap:20px;width:100%;max-width:640px;display:grid}.lp-celebration:not(.lp-celebration-details) .lp-completion-details{visibility:hidden;pointer-events:none}.lp-celebration-mascot-slot{width:120px}.lp-celebration-mascot{transition:transform .75s cubic-bezier(.22,1,.36,1),opacity .25s}.lp-celebration-waiting .lp-celebration-mascot,.lp-celebration-xp .lp-celebration-mascot{opacity:0;transform:translateY(var(--mascot-offset)) scale(.6)}.lp-celebration-mascot .lp-celebration-mascot{opacity:1;transform:translateY(var(--mascot-offset)) scale(1.3)}.lp-celebration-details .lp-celebration-mascot{opacity:1;transform:translateY(0)scale(1)}.lp-celebration-details .lp-completion-details{animation:.65s .2s both lp-details-in}.lp-xp-stage{pointer-events:none;z-index:2;place-items:center;display:grid;position:fixed;inset:0}.lp-xp-burst{text-align:center;animation:.65s cubic-bezier(.2,.85,.3,1.3) both lp-xp-enter}.lp-xp-burst strong{font:700 clamp(76px,16vw,140px)/1.1 var(--sans);color:var(--gold-hi);text-shadow:0 0 70px #e1af6140;display:block}.lp-xp-burst strong span{font-size:.5em}.lp-xp-burst small{font:12px var(--mono);letter-spacing:.18em;color:var(--muted);margin-bottom:20px;display:block}.lp-xp-burst p{margin-top:16px;font-size:22px}.lp-celebration-mascot .lp-xp-burst{animation:.25s both lp-xp-exit}.lp-xp-stage .lp-confetti{z-index:-1;inset:0}.lp-celebration-status{color:var(--muted);font-size:13px;position:fixed;bottom:24px;left:16px;right:16px}.lp-earned-badge{text-align:left;background:#e1af6112;border:1px solid #e1af6166;border-radius:18px;align-items:center;gap:14px;padding:14px 22px;display:flex}.lp-earned-badge-icon{width:52px;height:52px;color:var(--gold-hi);background:#e1af6121;border-radius:50%;place-items:center;display:grid}.lp-earned-badge-icon svg{width:30px;height:30px}.lp-earned-badge small{color:var(--muted);font:10px var(--mono);letter-spacing:.1em;display:block}.lp-earned-badge b{color:var(--gold-hi);margin-top:4px;font-size:20px;display:block}@keyframes lp-xp-enter{0%{opacity:0;transform:scale(.35)translateY(25px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes lp-xp-exit{to{opacity:0;transform:scale(.8)translateY(-35px)}}@keyframes lp-details-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.lp-xp-stage{display:none}.lp-celebration .lp-celebration-mascot{transition:none;transform:none}.lp-completion-details,.lp-xp-burst{animation:none!important}}.lp-up-next{width:min(100%,560px);padding-top:var(--s-3);border-top:1px solid var(--line-2);text-align:center;gap:2px;display:grid}.lp-up-next small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.lp-up-next b{font-size:var(--fs-sm);font-weight:600;line-height:1.4}.lp-completion-actions{justify-content:space-between;align-items:center;gap:16px;width:min(100%,560px);display:flex}.lp-completion-actions>.btn{white-space:normal;text-align:center;max-width:65%;margin-left:auto}.lp-completion-actions>.lp-course-return{text-align:left;flex-shrink:0;justify-content:center;align-items:center;min-height:44px;padding:8px 0;line-height:1.4;display:inline-flex}@media (width<=380px){.lp-completion-actions{gap:10px}.lp-completion-actions>.btn{max-width:58%;padding-inline:16px}.lp-completion-actions>.lp-course-return{font-size:12px}}.lp-table-wrap{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.lp-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.lp-table caption{text-align:left;color:var(--muted);font-size:var(--fs-xs);padding:10px 14px 0}.lp-table th,.lp-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 14px}.lp-table thead th{color:var(--muted);font-weight:500;font-size:var(--fs-xs);background:var(--bg-2)}.lp-table tbody th{font-weight:600}.lp-table tr:last-child>*{border-bottom:0}.lp-rule{border-left:3px solid var(--gold);background:var(--surface);border-radius:0 10px 10px 0;gap:4px;padding:12px 16px;font-weight:500;display:grid}.lp-rule small,.lp-tip small,.journal span:first-child{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.lp-tip{border:1px solid var(--line-2);background:var(--bg-2);font-size:var(--fs-sm);border-radius:12px;gap:6px;padding:12px 16px;display:grid}.lp-tip p{color:var(--muted);margin:0}.lp-tip a{justify-self:start}.lp-shot{gap:6px;margin:0;display:grid}.lp-shot img{border:1px solid var(--line-2);background:#000;border-radius:10px;width:auto;max-width:100%;height:auto;display:block}.lp-shot figcaption{font-size:var(--fs-xs);color:var(--muted)}.vis-bidask{gap:var(--s-2);grid-template-columns:1fr auto 1fr;align-items:stretch;display:grid}.vis-bidask div{border:1px solid var(--line-2);background:var(--surface);text-align:center;border-radius:10px;gap:2px;padding:10px 12px;display:grid}.vis-bidask b{font-family:var(--mono)}.vis-bidask .bid b{color:var(--down)}.vis-bidask .ask b{color:var(--c-entry)}.vis-bidask small{color:var(--muted);font-size:var(--fs-xs)}.vis-framework{gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.vis-framework li{border:1px solid var(--line-2);background:var(--surface);font-weight:600;font-size:var(--fs-sm);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex}.vis-framework li span{font-family:var(--mono);color:var(--gold-hi);font-size:var(--fs-xs)}.reflect .journal{border:1px dashed var(--line-2);border-radius:12px;gap:4px;padding:12px 16px;display:grid}.tool-field{gap:var(--s-2);border:0;margin:0;padding:0;display:grid}.tool-field legend{margin-bottom:4px;font-weight:600}.tool-help,.tool-earlier{color:var(--muted);font-size:var(--fs-sm);margin:0}.chip-btn.on{border-color:var(--gold);background:#e1af611a}.tool-own{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tool-own li{justify-content:space-between;gap:var(--s-3);background:var(--surface);border:1px solid var(--line);font-size:var(--fs-sm);border-radius:10px;padding:8px 12px;display:flex}.tool-add{gap:var(--s-2);display:flex}.tool-add input,.tool-field textarea{border:2px solid var(--line-2);background:var(--surface);min-width:0;color:var(--text);font:inherit;font-size:var(--fs-sm);border-radius:12px;flex:1;padding:10px 12px}.tool-add input:focus,.tool-field textarea:focus{border-color:var(--gold);outline:none}.tool-saved{justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--fs-sm);background:#26a69a14;border:1px solid #26a69a80;border-radius:12px;flex-wrap:wrap;padding:12px 16px;display:flex}.tool-saved p{margin:0}.calc{gap:var(--s-4);display:grid}@media (width>=720px){.calc{grid-template-columns:1fr 1fr;align-items:start}}.calc-in{gap:var(--s-2);display:grid}.calc-field{justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--fs-sm);display:flex}.calc-field .num-in{width:9.5rem;font-size:var(--fs-base);flex:none;padding:4px 10px}.calc-field input{width:100%;min-width:0}.calc-out{gap:var(--s-2);margin:0;display:grid}.calc-out div{justify-content:space-between;gap:var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex}.calc-out dt{color:var(--muted);font-size:var(--fs-sm)}.calc-out dd{font-family:var(--mono);margin:0;font-weight:600}.calc-out .hl{border-color:var(--gold)}.calc-out .hl dd{color:var(--gold-hi)}.sort-list{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.sort-item{gap:var(--s-2);border:2px solid var(--line-2);background:var(--surface);border-radius:12px;padding:12px 14px;display:grid}.sort-item.right{border-color:var(--up)}.sort-item.wrong{border-color:var(--down)}.sort-btns{gap:var(--s-2);flex-wrap:wrap;display:flex}.sort-btns .chip-btn{padding:6px 12px}.sort-btns .chip-btn:disabled{opacity:.55}.sort-btns .chip-btn.answer{border-color:var(--up)}.grade-checks{gap:6px;margin:0;padding:0;list-style:none;display:grid}.grade-checks li{gap:var(--s-3);background:var(--bg-2);border:1px solid var(--line);font-size:var(--fs-sm);border-radius:10px;grid-template-columns:5.5rem 1fr;padding:10px 14px;display:grid}.grade-checks b{font-family:var(--mono);font-size:var(--fs-xs);color:var(--gold-hi);padding-top:2px}.opts.three{grid-template-columns:repeat(3,1fr)}.opts.three .opt{text-align:center;justify-content:center;padding:14px 8px}.ticket{border:1px solid var(--line-2);background:var(--surface);border-radius:12px;gap:2px;display:grid;overflow:hidden}.ticket-head{gap:var(--s-3);background:var(--bg-2);font-family:var(--mono);font-size:var(--fs-sm);flex-wrap:wrap;align-items:baseline;padding:10px 14px;display:flex}.ticket-head .bid{color:var(--down)}.ticket-head .ask{color:var(--c-entry)}.ticket-row{justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--fs-sm);border-left:3px solid #0000;padding:8px 14px;display:flex}.ticket-row.right{border-left-color:var(--up)}.ticket-row.wrong{border-left-color:var(--down);background:#ef53500f}.ticket-row input,.ticket-row select{border:1px solid var(--line-2);background:var(--bg);width:12rem;max-width:60%;color:var(--text);font-family:var(--mono);font-size:var(--fs-sm);border-radius:8px;padding:8px 10px}.ticket-row input:focus,.ticket-row select:focus{border-color:var(--gold);outline:none}.lp-earned-tool{color:inherit;border-color:var(--line-2);background:var(--surface);text-decoration:none}.lp-earned-tool:hover{border-color:#e1af6180}.lp-earned-tool span:last-child{color:var(--muted);font-size:var(--fs-sm);margin-top:2px;display:block}.jr-stats{grid-template-columns:1fr 1fr}@media (width>=720px){.jr-stats{grid-template-columns:repeat(3,1fr)}}.jr-row{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.jr-row label,.jr-form label{font-size:var(--fs-sm);color:var(--muted);gap:4px;display:grid}.jr-row input,.pl-name{border:2px solid var(--line-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);border-radius:12px;min-width:0;padding:10px 12px}.jr-row input:focus,.pl-name:focus{border-color:var(--gold);outline:none}.jr-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.jr-list li{background:var(--surface);border:1px solid var(--line);font-size:var(--fs-sm);border-radius:10px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:4px 12px;padding:10px 14px;display:grid}.jr-list li>span:nth-child(3){color:var(--muted);font-size:var(--fs-xs);grid-column:2}.jr-list li>b:nth-child(4){font-family:var(--mono);grid-area:1/3/3}.jr-list li>button{grid-area:1/4/3}.jr-list .ok{color:var(--up)}.jr-list .bad{color:var(--down)}.pc-list{gap:var(--s-2);counter-reset:pc;margin:0;padding:0;list-style:none;display:grid}.pc-list li{gap:var(--s-2);border:2px solid var(--line-2);background:var(--surface);border-radius:12px;padding:12px 14px;display:grid}.pc-list li.yes{border-color:#26a69a99}.pc-list li.no{border-color:#ef5350b3}.pc-list small{color:var(--muted);font-size:var(--fs-xs);margin-top:2px;display:block}.pc-verdict{border:1px solid var(--line-2);font-size:var(--fs-sm);color:var(--muted);border-radius:12px;padding:12px 16px}.pc-verdict.yes{color:var(--text);border-color:#26a69a99}.pc-verdict.no{color:var(--text);border-color:#ef5350b3}.pl-doc{gap:var(--s-4);padding:var(--s-4);border:1px solid var(--line-2);background:var(--bg-2);border-radius:14px;display:grid}.pl-doc h3{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-hi);margin:0 0 var(--s-2)}.pl-tool{margin-bottom:var(--s-3);gap:6px;display:grid}.pl-tool dl{gap:6px;margin:0;display:grid}.pl-tool dt{font-size:var(--fs-xs);color:var(--muted)}.pl-tool dd{flex-wrap:wrap;gap:6px;margin:0;display:flex}.pl-tool dd span{background:var(--surface);border:1px solid var(--line);font-size:var(--fs-sm);border-radius:8px;padding:4px 10px}.pl-name{width:14rem;max-width:55%}
