/* Interactive components inherit the validated stage identity and lesson surface. */
.li1-interactive,.li1-map,.li1-definition{--li1-accent:var(--b16-action,var(--el-accent,#4948ba));--li1-on:var(--b16-on-action,#fff);--li1-soft:var(--b16-soft,var(--el-soft,#eeedff));--li1-line:var(--b16-line,var(--el-line,#dce2ef));--li1-ink:var(--el-ink,#172343);--li1-muted:var(--el-muted,#58677e);--li1-card:var(--el-card,#fff);box-sizing:border-box;min-width:0;font:inherit;color:var(--li1-ink)}
.li1-interactive *,.li1-map *,.li1-definition *{box-sizing:border-box}.li1-interactive [hidden],.li1-map [hidden]{display:none!important}
.li1-interactive{border:1px solid var(--li1-line);border-radius:20px;overflow:hidden;background:var(--li1-card);box-shadow:0 12px 35px #1723430b}.li1-frame-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:15px 18px;background:var(--li1-soft);border-bottom:1px solid var(--li1-line)}.li1-frame-header strong{font-size:.88rem;line-height:1.8}.li1-frame-actions{display:flex;gap:8px;flex-wrap:wrap}.li1-frame-actions button{min-height:44px;padding:9px 14px;font:inherit;font-size:.8rem;font-weight:700;border:1px solid var(--li1-line);border-radius:10px;cursor:pointer;background:var(--li1-card);color:var(--li1-accent)}.li1-frame{display:block;border:0;width:100%;height:var(--li1-height,480px);background:#fff}.li1-caption{margin:14px 0;line-height:1.9;color:var(--el-muted,#58677e)}
.li1-interactive:fullscreen,.li1-interactive.li1-overlay{display:flex;flex-direction:column;width:100%;height:100%;border:0;border-radius:0;background:var(--li1-card)}.li1-interactive:fullscreen .li1-frame,.li1-interactive.li1-overlay .li1-frame{height:auto;flex:1 1 auto;min-height:0}.li1-interactive.li1-overlay{position:fixed;inset:0;z-index:var(--nz-layer-reader,2147483440);height:100vh;height:100dvh;max-width:none;margin:0;box-shadow:none}.li1-interactive:fullscreen .li1-frame-header,.li1-interactive.li1-overlay .li1-frame-header{flex:0 0 auto;padding-top:max(12px,env(safe-area-inset-top));padding-inline-start:max(16px,env(safe-area-inset-left));padding-inline-end:max(16px,env(safe-area-inset-right))}.li1-expanded [data-li1-expand]{display:none}
.li1-map{padding:20px;border:1px solid var(--li1-line);border-radius:22px;background:linear-gradient(145deg,var(--li1-card),var(--li1-soft));margin:12px 0}.li1-map-help{font-size:.78rem;color:var(--li1-muted);line-height:1.9;margin:0 0 14px}.li1-map-description{line-height:1.9;white-space:normal;overflow-wrap:anywhere}.li1-map-stage{position:relative;direction:ltr;width:100%;aspect-ratio:16/10;isolation:isolate;border:1px solid var(--li1-line);border-radius:17px;background:var(--li1-card);background-image:radial-gradient(var(--li1-line) 1px,transparent 1px);background-size:20px 20px}.li1-map-image{position:absolute!important;inset:0;width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important;border-radius:16px;margin:0!important}.li1-map-edges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.li1-map-edges line{stroke:var(--li1-accent);stroke-width:2;stroke-opacity:.45;vector-effect:non-scaling-stroke}
.li1-map-node{position:absolute;transform:translate(-50%,-50%);z-index:2;direction:rtl;font:inherit;font-size:clamp(.67rem,1.6vw,.91rem);font-weight:750;line-height:1.6;min-height:44px;min-width:44px;max-width:32%;padding:9px 13px;border:2px solid var(--li1-line);border-radius:15px;background:var(--li1-card);color:var(--li1-ink);box-shadow:0 5px 17px #17234312;cursor:pointer;overflow-wrap:anywhere;touch-action:manipulation;transition:border-color .15s,box-shadow .15s}.li1-map-node:hover,.li1-map-node.is-active{border-color:var(--li1-accent);box-shadow:0 5px 20px #17234320}.li1-map-node[data-li1-href]::after{content:'↗';display:inline-block;font-size:.8em;color:var(--li1-accent);margin-inline-start:5px}.li1-map[data-li1-map=hotspot_map] .li1-map-node{border-radius:50%;width:44px;height:44px;padding:0;min-width:44px;max-width:44px;background:var(--li1-accent);color:var(--li1-on);border:3px solid var(--li1-card)}.li1-map[data-li1-map=hotspot_map] .li1-map-node::before{content:'+';font-size:1.3rem}.li1-map[data-li1-map=hotspot_map] .li1-map-node::after{display:none}.li1-map[data-li1-map=hotspot_map] .li1-map-label{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:max-content;max-width:180px;padding:7px 11px;border-radius:10px;background:var(--li1-card);color:var(--li1-ink);border:1px solid var(--li1-line);box-shadow:0 4px 16px #17234317;font-size:.76rem;opacity:0;pointer-events:none}.li1-map[data-li1-map=hotspot_map] .li1-map-node:hover .li1-map-label,.li1-map[data-li1-map=hotspot_map] .li1-map-node:focus-visible .li1-map-label,.li1-map[data-li1-map=hotspot_map] .li1-map-node.is-active .li1-map-label{opacity:1}.li1-map-node:focus-visible,.li1-frame-actions button:focus-visible,.li1-map-link:focus-visible,.li1-return:focus-visible{outline:3px solid var(--li1-accent,#4948ba);outline-offset:4px}
.li1-map-panel{margin-top:18px;border-inline-start:4px solid var(--li1-accent);padding:15px 18px;background:var(--li1-card);border-radius:12px}.li1-map-panel h4{font-size:1rem;line-height:1.8;margin:0 0 8px!important}.li1-map-panel p{margin:0 0 12px;line-height:1.9;overflow-wrap:anywhere}.li1-map-panel p:empty{display:none}.li1-map-panel .li1-map-empty{display:none}.li1-map-link{display:inline-flex;align-items:center;min-height:44px;padding:9px 15px;border-radius:10px;background:var(--li1-accent);color:var(--li1-on)!important;font-size:.83rem;font-weight:750;text-decoration:none}.li1-map-locked{display:block;padding:9px 12px;border:1px dashed var(--li1-line);border-radius:9px;color:var(--li1-muted);font-size:.79rem;line-height:1.9}.li1-map-source{display:block;color:var(--li1-muted);font-size:.75rem;margin-top:14px;overflow-wrap:anywhere}
.li1-definition{position:relative;display:flex;align-items:flex-start;gap:20px;padding:25px;border:1px solid var(--li1-line);border-inline-start:5px solid var(--li1-accent);border-radius:21px;background:linear-gradient(130deg,var(--li1-card),var(--li1-soft));margin:12px 0;box-shadow:0 8px 28px #1723430a}.li1-definition>div{min-width:0;flex:1}.li1-definition-mark{display:grid;place-items:center;flex:none;width:54px;height:54px;border-radius:16px;background:var(--li1-accent);color:var(--li1-on);font-size:1.6rem}.li1-definition-label{font-size:.75rem;font-weight:700;color:var(--li1-accent)}.li1-definition h4{font-size:clamp(1.1rem,2.5vw,1.4rem);line-height:1.7;margin:5px 0 13px!important}.li1-definition p{line-height:1.95;margin:0;overflow-wrap:anywhere}.li1-definition-example{border-top:1px solid var(--li1-line);padding-top:13px;margin-top:16px}.li1-definition-example strong{font-size:.8rem;color:var(--li1-accent)}.li1-definition small{display:block;color:var(--li1-muted);font-size:.73rem;margin-top:15px;overflow-wrap:anywhere}
.li1-return{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));inset-inline-start:22px;z-index:1100;min-height:48px;max-width:calc(100vw - 44px);padding:12px 19px;font:inherit;font-size:.86rem;font-weight:750;background:var(--b16-action,#4948ba);color:var(--b16-on-action,#fff);border:1px solid #ffffff55;border-radius:15px;box-shadow:0 8px 30px #17234335;cursor:pointer}
@media(max-width:600px){.li1-map{padding:13px;border-radius:17px}.li1-map-node{padding:7px 9px;font-size:.68rem;border-radius:11px;max-width:34%}.li1-map-panel{padding:13px;margin-top:14px}.li1-definition{padding:18px;gap:13px}.li1-definition-mark{width:40px;height:40px;border-radius:12px;font-size:1.2rem}.li1-frame-header{padding:12px}.li1-frame-header strong{font-size:.78rem}.li1-return{inset-inline-start:13px;bottom:16px;font-size:.77rem;padding:10px 14px}}
@media(prefers-reduced-motion:reduce){.li1-map-node{transition:none}}
/* LESSON29: relationship maps, reading alternative and optional location practice. */
.li1-map-tools{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.li1-map-tools button{font:inherit;font-size:.76rem;line-height:1.5;min-height:42px;padding:9px 12px;border:1px solid var(--li1-line);border-radius:10px;color:var(--li1-accent);background:var(--li1-card);cursor:pointer}.li1-map-tools button:disabled{opacity:.5;cursor:default}.li1-map-tools button[aria-pressed=true]{background:var(--li1-accent);color:var(--li1-on)}.li1-map-tools button:focus-visible,.li1-map-text summary:focus-visible{outline:3px solid var(--li1-accent);outline-offset:3px}.li1-map-viewport{width:100%;max-height:740px;overflow:auto;border-radius:17px;overscroll-behavior:contain}.li1-map-stage{min-width:100%;margin:0;overflow:visible}.li1-map-edges line{stroke-opacity:.7}.li1-map-edges marker path{fill:var(--li1-accent)}.li1-edge-label{position:absolute;z-index:1;transform:translate(-50%,-50%);direction:rtl;max-width:180px;padding:3px 7px;border:1px solid var(--li1-line);border-radius:7px;background:var(--li1-card);color:var(--li1-muted);font-size:.7rem;line-height:1.6;pointer-events:none;text-align:center;overflow-wrap:anywhere}.li1-map-text{display:grid;gap:8px;margin-top:12px}.li1-ready:not(.li1-view-text) .li1-map-text{display:none}.li1-ready.li1-view-text .li1-map-viewport{display:none}.li1-map-text details{border:1px solid var(--li1-line);border-radius:12px;background:var(--li1-card);overflow:hidden}.li1-map-text summary{cursor:pointer;font-size:.9rem;line-height:1.8;font-weight:700;padding:12px 16px;min-height:46px;overflow-wrap:anywhere}.li1-map-text details[open]{border-color:var(--li1-accent)}.li1-text-detail{padding:0 16px 16px;line-height:1.9;overflow-wrap:anywhere}.li1-text-detail h4{font-size:1rem;margin:7px 0!important}.li1-text-relation{font-size:.76rem;background:var(--li1-soft);border-radius:8px;padding:8px 10px}.li1-text-edges{margin:0;padding:12px 28px;display:grid;gap:10px;border:1px solid var(--li1-line);border-radius:12px;background:var(--li1-card);font-size:.82rem;line-height:1.9}.li1-map-status{font-size:.74rem;color:var(--li1-muted);margin:12px 0 0}.li1-map-practice{padding:16px;border:1px solid var(--li1-line);border-inline-start:4px solid var(--li1-accent);border-radius:12px;background:var(--li1-card);margin:12px 0;line-height:1.9}.li1-map-practice strong{font-size:.95rem}.li1-map-practice p{font-size:.83rem;margin:8px 0}.li1-map-practice small{font-size:.7rem;color:var(--li1-muted)}.li1-practicing .li1-map-node .li1-map-label{visibility:hidden}.li1-practicing .li1-map-node::before{content:attr(data-li1-index)!important;font-size:.9rem!important}.li1-map[data-li1-map=mind_map] .li1-map-node{max-width:26%;font-size:clamp(.76rem,1.1vw,.91rem)}
@media(max-width:600px){.li1-map-tools{gap:6px}.li1-map-tools button{flex:0 1 auto;font-size:.73rem;padding:8px 10px}.li1-edge-label{max-width:110px;font-size:.65rem}.li1-map-viewport{max-height:520px}.li1-map[data-li1-map=mind_map] .li1-map-node{font-size:.76rem;padding:8px}.li1-map-practice{padding:12px}.li1-map-text summary{padding:11px 13px}.li1-text-detail{padding:0 13px 13px}}
.li1-map-edges>path{fill:none;stroke:var(--li1-accent);stroke-width:2;stroke-opacity:.7;vector-effect:non-scaling-stroke}
.dark .li1-map,.dark .li1-interactive,.dark .li1-definition,.dark-mode .li1-map,.dark-mode .li1-interactive,.dark-mode .li1-definition{--li1-on:var(--b16-on-action,#141e33)}
.li1-map-tools button[data-li1-view].is-selected{background:var(--li1-accent);color:var(--li1-on)}
.li1-map.li1-view-text [data-li1-zoom-in],.li1-map.li1-view-text [data-li1-zoom-out],.li1-map.li1-view-text [data-li1-fit]{display:none!important}
