
        .lsm { padding: 72px 24px 56px; }
        .lsm__inner { max-width: 1100px; margin: 0 auto; }
        .lsm__head { text-align: center; margin-bottom: 32px; }
        .lsm__eyebrow { display: none; }
        .lsm__head h2 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); font-weight: 900; letter-spacing: -.02em;
            color: #010347; margin: 0 0 14px; }
        .lsm__head p { font-size: clamp(1rem, 1.8vw, 1.25rem); font-weight: 600; color: #64748b; max-width: 1060px; margin: 0 auto; }
        .lsm__head p span { display: block; }

        /* URL input area */
        .lsm__input-wrap { max-width: 680px; margin: 0 auto 32px; }
        .lsm__input-label { display: flex; align-items: center; gap: 8px; justify-content: center;
            font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .16em;
            color: #7c3aed; margin-bottom: 12px; }
        .lsm__input-label::before, .lsm__input-label::after { content: ''; flex: 1; max-width: 60px;
            height: 1.5px; background: linear-gradient(90deg, transparent, #d4c7f8); }
        .lsm__input-label::after { background: linear-gradient(90deg, #d4c7f8, transparent); }
        .lsm__bar { display: flex; gap: 0;
            background: #fff; border: 2px solid #7c3aed; border-radius: 16px;
            box-shadow: 0 16px 40px -12px rgba(1,3,71,.18);
            overflow: hidden; transition: border-color .2s, box-shadow .2s; }
        .lsm__bar:focus-within { box-shadow: 0 16px 40px -12px rgba(1,3,71,.25); }
        .lsm__bar-prefix { display: flex; align-items: center; padding: 0 16px; color: #475569;
            font-size: 15px; font-weight: 700; border-right: 1.5px solid #eef0f6; white-space: nowrap; }
        .lsm__input { flex: 1; min-width: 0; border: none; outline: none; padding: 18px 16px; font-size: 17px;
            font-weight: 700; color: #010347; background: transparent; font-family: inherit; }
        .lsm__input::placeholder { color: #b0b8cc; font-weight: 600; }
        .lsm__btn { padding: 13px 26px; margin: 7px; background: #7c3aed; color: #fff; border: none;
            border-radius: 11px; font-size: 15px; font-weight: 900; cursor: pointer; white-space: nowrap;
            transition: background .15s, transform .12s, box-shadow .15s; font-family: inherit;
            box-shadow: 0 4px 14px -4px rgba(124,58,237,.5); }
        .lsm__btn:hover:not(:disabled) { background: #6d28d9; transform: translateY(-1px); box-shadow: 0 6px 18px -4px rgba(124,58,237,.6); }
        .lsm__btn:disabled { opacity: .6; cursor: default; box-shadow: none; }
        .lsm__hint { text-align: center; font-size: 12.5px; font-weight: 700; color: #dc2626; margin: 8px 0 0; display: none; }
        .lsm__hint.on { display: block; }
        .lsm__prog-wrap { height: 5px; background: #e8eaf2; border-radius: 99px; overflow: hidden; margin-top: 14px; opacity: 0; transition: opacity .3s; }
        .lsm__prog-wrap.on { opacity: 1; }
        .lsm__prog-fill { height: 100%; width: 0%; border-radius: 99px; background: linear-gradient(90deg, #7c3aed, #a855f7); transition: width .5s cubic-bezier(.3,.8,.3,1); }

        /* Stage, open canvas, no card: the map builds freely on the page */
        .lsm__stage { position: relative; }
        .lsm__field { position: relative; height: 400px; transition: height .275s cubic-bezier(.3,.8,.3,1); }
        .lsm__field.is-fading .lsm-chip, .lsm__field.is-fading .lsm__panel, .lsm__field.is-fading .lsm__lines { opacity: 0; transition: opacity .45s; }

        /* root node */
        .lsm__root { position: absolute; left: 50%; top: 28px; transform: translateX(-50%) scale(.85); z-index: 7;
            display: flex; align-items: center; gap: 9px; background: #010347; color: #fff; border-radius: 12px;
            padding: 11px 18px; font-size: 14.5px; font-weight: 800; opacity: 0; pointer-events: none;
            box-shadow: 0 14px 34px -12px rgba(1,3,71,.55); transition: opacity .4s, transform .4s; }
        .lsm__root.on { opacity: 1; transform: translateX(-50%) scale(1); }
        .lsm__root i { font-size: 17px; color: #b69cf2; }
        .lsm__root em { display: none; }

        /* scanning label, visible only while stage has is-scanning + no chips yet */
        .lsm__scanning-label { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
            z-index: 6; display: none; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
        .lsm__stage.is-scanning .lsm__scanning-label { display: flex; }
        .lsm__stage.is-scanning.has-blocks .lsm__scanning-label { display: none; }
        .lsm__scanning-label span { font-size: 14px; font-weight: 800; color: #64748b; }
        .lsm__scanning-label b { color: #010347; }
        .lsm__scan-spin { width: 36px; height: 36px; border-radius: 50%; border: 3px solid #e8eaf2;
            border-top-color: #7c3aed; animation: lsm-spin 1s linear infinite; }
        @keyframes lsm-spin { to { transform: rotate(360deg); } }

        /* radar ping while waiting for first findings */
        .lsm__radar { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px;
            border-radius: 50%; background: #010347; z-index: 3; display: none; }
        .lsm__radar.on { display: block; }
        .lsm__radar::before, .lsm__radar::after { content: ''; position: absolute; inset: 0; border-radius: 50%;
            border: 1.5px solid rgba(1,3,71,.3); animation: lsm-ping 2.2s cubic-bezier(.2,.6,.4,1) infinite; }
        .lsm__radar::after { animation-delay: 1.1s; }
        @keyframes lsm-ping { from { transform: scale(1); opacity: .9; } to { transform: scale(14); opacity: 0; } }

        /* cluster panels, monochrome */
        .lsm__panel { position: absolute; border-radius: 12px; border: 1.5px solid transparent;
            background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, #60a5fa 0%, #a78bfa 100%) border-box;
            box-shadow: 0 0 18px 8px rgba(255,255,255,0.72);
            opacity: 0; z-index: 4; transition: opacity .225s, transform .275s cubic-bezier(.3,.8,.3,1),
            width .275s cubic-bezier(.3,.8,.3,1), height .275s cubic-bezier(.3,.8,.3,1); }
        .lsm__panel.on { opacity: 1; }
        .lsm__panel-head { display: flex; align-items: center; gap: 7px; padding: 9px 12px 0;
            font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; color: #010347; }
        .lsm__panel-head i { font-size: 13px; color: #3730a3; }
        .lsm__panel-head b { margin-left: auto; font-size: 11px; background: #f1f5f9; color: #64748b;
            border-radius: 99px; padding: 1px 8px; }

        /* svg connector lines */
        .lsm__lines { position: absolute; inset: 0; z-index: 2; pointer-events: none; }

        /* script chips, monochrome */
        .lsm-chip { position: absolute; left: 0; top: 0; width: 150px; height: 34px; z-index: 5;
            display: flex; align-items: center; gap: 7px; padding: 0 11px; box-sizing: border-box;
            border-radius: 8px; border: 1.5px solid transparent;
            background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, #60a5fa 0%, #a78bfa 100%) border-box;
            font-size: 12px; font-weight: 700;
            color: #1e293b; box-shadow: 0 2px 8px -4px rgba(1,3,71,.12), 0 0 12px 5px rgba(255,255,255,0.68); will-change: transform;
            transition: transform .55s cubic-bezier(.3,.8,.3,1), opacity .4s; }
        .lsm-chip i { font-size: 13px; flex: none; color: #94a3b8; }
        .lsm-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .lsm-chip em { display: none; }
        .lsm-chip.is-in { animation: lsm-land .275s cubic-bezier(.3,.8,.3,1); }
        @keyframes lsm-land { 0% { opacity: 0; } 60% { opacity: 1; } 100% { opacity: 1; } }
        .lsm-chip--more { justify-content: center; color: #94a3b8; border-style: dashed; box-shadow: none; font-size: 11.5px; }
        @media (prefers-reduced-motion: reduce) { .lsm-chip, .lsm__panel, .lsm__field { transition: none !important; animation: none !important; } }

        /* done + error overlays */
        .lsm__done { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 12;
            display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: center;
            background: #fff; border: 1.5px solid #e0e4ef; border-radius: 14px; padding: 13px 18px;
            box-shadow: 0 20px 60px -12px rgba(1,3,71,.3); max-width: calc(100% - 32px); }
        .lsm__done[hidden] { display: none; }
        .lsm__done-txt { font-size: 13.5px; font-weight: 800; color: #010347; }
        .lsm__done-txt b { color: #010347; }
        .lsm__done-btns { display: flex; gap: 8px; }
        .lsm__cta { display: inline-block; padding: 10px 18px; background: #010347; color: #fff; text-decoration: none;
            border-radius: 10px; font-size: 13px; font-weight: 800; transition: background .15s; }
        .lsm__cta:hover { background: #7c3aed; color: #fff; text-decoration: none; }
        .lsm__again { padding: 10px 16px; background: #fff; color: #010347; border: 1.5px solid #d4d8e8;
            border-radius: 10px; font-size: 13px; font-weight: 800; cursor: pointer; font-family: inherit; transition: border-color .15s; }
        .lsm__again:hover { border-color: #7c3aed; color: #7c3aed; }
        .lsm__err { position: absolute; inset: 0; z-index: 14; display: flex; flex-direction: column; gap: 14px;
            align-items: center; justify-content: center; text-align: center; padding: 40px;
            background: rgba(250,251,255,.96); }
        .lsm__err[hidden] { display: none; }
        .lsm__err-icon { width: 54px; height: 54px; border-radius: 16px; background: #fff1f2; color: #e11d48;
            display: flex; align-items: center; justify-content: center; font-size: 26px; }
        .lsm__err h3 { margin: 0; font-size: 1.25rem; font-weight: 900; color: #010347; }
        .lsm__err p { margin: 0; font-size: 14px; font-weight: 600; color: #64748b; max-width: 460px; line-height: 1.6; }

        @media (max-width: 700px) {
            .lsm { padding: 72px 16px 90px; }
            .lsm__bar-prefix { display: none; }
            .lsm__tick span { display: none; }
            .lsm__root { font-size: 12.5px; padding: 9px 13px; top: 24px; }
        }
    