.vyasa-link-preview-popover {
    position: fixed;
    display: flex;
    flex-direction: column;
    z-index: 10500;
    width: max(560px, 46vw);
    min-width: 18rem;
    min-height: 12rem;
    max-width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    overflow: hidden;
    overscroll-behavior: contain;
    pointer-events: none;
    opacity: 0;
    transform: translateY(6px) scale(0.98);
    transition: opacity 120ms ease, transform 120ms ease;
}

.vyasa-link-preview-popover.is-open {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
    overflow: hidden;
    border-radius: 14px;
    box-shadow:
        0 4px 14px rgba(15, 23, 42, 0.2),
        0 28px 72px rgba(15, 23, 42, 0.32),
        0 0 0 1px color-mix(in srgb, var(--vyasa-primary) 12%, transparent);
}

@keyframes vyasa-link-preview-pin-bloom {
    0% {
        box-shadow:
            0 4px 14px rgba(15, 23, 42, 0.2),
            0 28px 72px rgba(15, 23, 42, 0.32),
            0 0 20px 5px color-mix(in srgb, var(--vyasa-primary) 54%, transparent),
            0 0 36px 12px color-mix(in srgb, var(--vyasa-primary) 34%, transparent);
    }
    100% {
        box-shadow:
            0 4px 14px rgba(15, 23, 42, 0.2),
            0 28px 72px rgba(15, 23, 42, 0.32),
            0 0 128px 56px color-mix(in srgb, var(--vyasa-primary) 0%, transparent),
            0 0 192px 84px color-mix(in srgb, var(--vyasa-primary) 0%, transparent);
    }
}

.vyasa-link-preview-popover.vyasa-link-preview-pin-bloom {
    animation: vyasa-link-preview-pin-bloom 7440ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@media (prefers-reduced-motion: reduce) {
    .vyasa-link-preview-popover.vyasa-link-preview-pin-bloom {
        animation: none;
        box-shadow: 0 0 0 2px var(--vyasa-primary);
    }
}

.vyasa-link-preview-pointer {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: visible;
    pointer-events: none;
}

.vyasa-link-preview-pointer,
.vyasa-link-preview-card {
    --vyasa-link-preview-surface: color-mix(in srgb, var(--vyasa-paper) 92%, var(--vyasa-primary) 8%);
    --vyasa-link-preview-border: color-mix(in srgb, var(--vyasa-primary) 24%, var(--vyasa-paper) 76%);
}

.vyasa-link-preview-pointer polygon {
    fill: var(--vyasa-link-preview-surface);
}

.vyasa-link-preview-pointer path {
    fill: none;
    stroke: var(--vyasa-link-preview-border);
    stroke-width: 1px;
    filter:
        drop-shadow(0 3px 4px rgba(15, 23, 42, 0.2))
        drop-shadow(0 12px 18px rgba(15, 23, 42, 0.3));
}

.vyasa-link-preview-pointer .vyasa-link-preview-dimple {
    fill: var(--vyasa-link-preview-surface);
    stroke: var(--vyasa-link-preview-border);
    stroke-width: 1px;
    filter:
        drop-shadow(0 2px 3px rgba(15, 23, 42, 0.18))
        drop-shadow(0 8px 12px rgba(15, 23, 42, 0.22));
}

.vyasa-link-preview-dimple-canvas,
.vyasa-link-preview-pinch-canvas {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}

.vyasa-link-preview-dimple-canvas {
    mix-blend-mode: soft-light;
}

.vyasa-link-preview-pinch-canvas {
    mix-blend-mode: normal;
}

.vyasa-link-preview-card {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--vyasa-link-preview-border);
    border-radius: 14px;
    background: var(--vyasa-link-preview-surface);
    overflow: hidden;
}

.vyasa-link-preview-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 2rem;
    padding: 0.35rem 0.55rem 0.25rem 0.9rem;
    color: var(--vyasa-ink-soft);
    font: 600 0.68rem/1 var(--vyasa-font-ui, sans-serif);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.vyasa-link-preview-bar:active {
    cursor: grabbing;
}

.vyasa-link-preview-bar .vyasa-link-preview-source {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 0.85em;
    opacity: 0.65;
    overflow-wrap: anywhere;
    line-height: 1.35;
}

.vyasa-link-preview-bar [data-vyasa-link-preview-origin] {
    flex: 0 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.35;
    white-space: normal;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.vyasa-link-preview-bar [data-vyasa-link-preview-origin]:hover { text-decoration: underline; text-underline-offset: 0.2em; }

.vyasa-link-preview-actions {
    display: grid;
    margin-left: auto;
    grid-template-columns: repeat(5, 1.5rem);
    align-items: center;
    gap: 0.35rem;
}

.vyasa-link-preview-actions button {
    display: inline-grid;
    height: 1.5rem;
    width: 1.5rem;
    place-items: center;
    border: 0;
    background: transparent;
    color: inherit;
    font: 700 0.85rem/1 var(--vyasa-font-ui, sans-serif);
    cursor: pointer;
}

.vyasa-link-preview-actions button[aria-pressed="true"] {
    border-radius: 0.25rem;
    background: color-mix(in srgb, var(--vyasa-primary) 18%, transparent);
    color: var(--vyasa-primary);
}

.vyasa-link-preview-tabs {
    display: flex;
    flex: 0 0 auto;
    gap: 0.25rem;
    padding: 0.4rem 0.55rem;
    overflow-x: auto;
    border-top: 1px solid var(--vyasa-link-preview-border);
    border-bottom: 1px solid var(--vyasa-link-preview-border);
    background: color-mix(in srgb, var(--vyasa-paper) 72%, var(--vyasa-primary) 28%);
}

.vyasa-link-preview-tabs[hidden] { display: none; }
.vyasa-link-preview-tabs button {
    flex: 0 0 auto;
    max-width: 18rem;
    overflow: hidden;
    border: 1px solid var(--vyasa-link-preview-border);
    border-radius: 0.35rem;
    padding: 0.35rem 0.55rem;
    background: var(--vyasa-link-preview-surface);
    color: var(--vyasa-ink);
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}
.vyasa-link-preview-tabs button[aria-selected="true"] {
    border-color: var(--vyasa-primary);
    background: color-mix(in srgb, var(--vyasa-primary) 28%, var(--vyasa-paper) 72%);
    box-shadow: inset 0 -2px 0 var(--vyasa-primary);
    color: var(--vyasa-ink);
}
.vyasa-link-preview-tabs button.vyasa-link-preview-tab-attribute {
    border-color: color-mix(in srgb, #d97706 48%, var(--vyasa-link-preview-border));
    background: color-mix(in srgb, #f59e0b 13%, var(--vyasa-link-preview-surface));
}
.vyasa-link-preview-tabs button.vyasa-link-preview-tab-attribute[aria-selected="true"] {
    border-color: #d97706;
    background: color-mix(in srgb, #f59e0b 30%, var(--vyasa-paper));
    box-shadow: inset 0 -2px 0 #d97706;
}

.vyasa-link-preview-content {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
}

.vyasa-link-preview-content > .vyasa-link-preview-shell {
    flex: 1 1 auto;
    min-width: 0;
}

.vyasa-link-preview-external-notice { flex: 0 0 auto; padding: 0.5rem 0.75rem; color: var(--vyasa-ink-soft); font: 0.8rem/1.4 var(--vyasa-font-ui, sans-serif); }
.vyasa-link-preview-external-notice a { color: var(--vyasa-primary); text-decoration: underline; }
.vyasa-link-preview-external iframe { flex: 1 1 0; min-height: 0; width: 100%; border: 0; background: white; }
.vyasa-link-preview-popover:has(.vyasa-link-preview-external) .vyasa-link-preview-actions { grid-template-columns: 1.5rem; }
.vyasa-link-preview-popover:has(.vyasa-link-preview-external) .vyasa-link-preview-actions button:not(.vyasa-link-preview-close) { display: none; }

.dark .vyasa-link-preview-pointer,
.dark .vyasa-link-preview-card {
    --vyasa-link-preview-surface: color-mix(in srgb, var(--vyasa-paper) 86%, var(--vyasa-primary) 14%);
}

.dark .vyasa-link-preview-popover.is-open {
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.42),
        0 30px 80px rgba(0, 0, 0, 0.68),
        0 0 32px color-mix(in srgb, var(--vyasa-primary) 22%, transparent),
        0 0 0 1px rgba(255, 255, 255, 0.12);
}

.dark .vyasa-link-preview-pointer polygon {
    filter:
        drop-shadow(0 4px 6px rgba(0, 0, 0, 0.45))
        drop-shadow(0 16px 24px rgba(0, 0, 0, 0.65))
        drop-shadow(0 0 10px color-mix(in srgb, var(--vyasa-primary) 24%, transparent));
}

.vyasa-link-preview-shell {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.vyasa-link-preview-body {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    max-height: none;
    overflow: auto;
    overscroll-behavior: contain;
    padding: 0 2rem 0.9rem 0.9rem;
    font-size: var(--vyasa-link-preview-font-size);
}

.vyasa-link-preview-body .text-base {
    font-size: inherit;
}

.vyasa-link-preview-body:has(> .code-block:only-child) {
    padding: 0;
    background: var(--vyasa-code-bg);
}

.vyasa-link-preview-body > .code-block:only-child { min-width: 100%; min-height: 100%; margin: 0; }
.vyasa-link-preview-body > .code-block:only-child pre { width: max-content; min-width: 100%; min-height: 100%; margin: 0 !important; overflow: visible; border: 0; border-radius: 0 !important; box-shadow: none; }
.vyasa-link-preview-body > .code-block:only-child pre.vyasa-code-wrap { width: 100%; }
.vyasa-link-preview-body code[data-code-line-numbers="true"] .vyasa-code-line::before { content: none; }
.vyasa-link-preview-code-line { position: absolute; left: 1rem; width: var(--vyasa-code-line-number-width); text-align: right; color: color-mix(in srgb, var(--vyasa-code-fg) 48%, transparent); font-variant-numeric: tabular-nums; cursor: pointer; }
.vyasa-link-preview-code-line::before { content: attr(data-source-line); }
.vyasa-link-preview-code-line:hover { color: var(--vyasa-link); text-decoration: underline; }
.vyasa-link-preview-code-line:focus-visible { outline: 2px solid var(--vyasa-primary); outline-offset: 2px; }

.vyasa-link-preview-body .vyasa-doc-h1 {
    font-size: 1.75em;
}

.vyasa-link-preview-body .vyasa-doc-h2 { font-size: 1.5em; }
.vyasa-link-preview-body .vyasa-doc-h3 { font-size: 1.25em; }
.vyasa-link-preview-body .vyasa-doc-h4 { font-size: 1.125em; }
.vyasa-link-preview-body .vyasa-doc-h5,
.vyasa-link-preview-body .vyasa-doc-h6 { font-size: 1em; }

.vyasa-link-preview-target-line {
    border-radius: 0.2em;
    background: color-mix(in srgb, var(--vyasa-primary) 22%, transparent);
    box-shadow: 0 0 0 0.18em color-mix(in srgb, var(--vyasa-primary) 22%, transparent);
}

.vyasa-link-preview-plain-text {
    width: max-content;
    min-width: 100%;
    margin: 0;
    font-family: var(--vyasa-font-mono, monospace);
    white-space: pre;
}

.vyasa-link-preview-plain-text.vyasa-code-wrap {
    width: 100%;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.vyasa-link-preview-body .w-full {
    width: 100%;
}

.vyasa-link-preview-body .vyasa-table-scroll,
.vyasa-link-preview-body .vyasa-table-scroll.vyasa-table-breakout {
    width: 100%;
    max-width: 100%;
    position: static;
    left: auto;
    transform: none;
    margin: 1.5rem 0;
}

.vyasa-link-preview-body .vyasa-table-scroll > table,
.vyasa-link-preview-body .vyasa-table-scroll > .uk-table {
    width: max-content !important;
    min-width: 100%;
    margin: 0;
}

.vyasa-link-preview-body .vyasa-heading-action,
.vyasa-link-preview-body .vyasa-heading-permalink {
    display: none !important;
}

.vyasa-link-preview-loading,
.vyasa-link-preview-empty {
    padding: 0.9rem 2rem 0.9rem 0.9rem;
    color: var(--vyasa-ink-soft);
    font-size: 0.875rem;
}

.vyasa-link-preview-close {
    border: 0;
    background: transparent;
    color: #dc2626;
    font: 600 0.75rem/1 ui-monospace, monospace;
    cursor: pointer;
    z-index: 1;
}

.vyasa-link-preview-close:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
