.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 var(--vyasa-duration-base) var(--vyasa-ease), transform var(--vyasa-duration-base) var(--vyasa-ease);
}

.vyasa-link-preview-popover.is-open {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
    overflow: hidden;
    border-radius: var(--vyasa-radius-lg);
    box-shadow: var(--vyasa-shadow-sm);
}

@keyframes vyasa-link-preview-pin-bloom {
    0% {
        box-shadow:
            var(--vyasa-shadow-sm),
            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:
            var(--vyasa-shadow-sm),
            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-accent-9);
    }
}

.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: var(--vyasa-surface);
    --vyasa-link-preview-border: var(--vyasa-border);
}

.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 1px 2px rgb(0 0 0 / var(--vyasa-shadow-alpha)));
}

.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 1px 2px rgb(0 0 0 / var(--vyasa-shadow-alpha)));
}

.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: var(--vyasa-radius-lg);
    background: var(--vyasa-link-preview-surface);
    overflow: hidden;
}

.vyasa-link-preview-bar {
    display: flex;
    align-items: center;
    gap: var(--vyasa-space-3);
    min-height: 2rem;
    padding: var(--vyasa-space-1) var(--vyasa-space-2) var(--vyasa-space-1) var(--vyasa-space-4);
    color: var(--vyasa-text-muted);
    font: var(--vyasa-weight-medium) var(--vyasa-text-xs)/1 var(--vyasa-font-ui);
    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;
    color: var(--vyasa-text-faint);
    overflow-wrap: anywhere;
    line-height: var(--vyasa-leading-snug);
}

.vyasa-link-preview-bar [data-vyasa-link-preview-origin] {
    flex: 0 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: var(--vyasa-leading-snug);
    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: var(--vyasa-space-1);
}

.vyasa-link-preview-actions button {
    display: inline-grid;
    height: 1.5rem;
    width: 1.5rem;
    place-items: center;
    border: 0;
    border-radius: var(--vyasa-radius-sm);
    background: transparent;
    color: inherit;
    font: var(--vyasa-weight-medium) var(--vyasa-text-sm)/1 var(--vyasa-font-ui);
    cursor: pointer;
    transition: background-color var(--vyasa-duration-fast) var(--vyasa-ease), color var(--vyasa-duration-fast) var(--vyasa-ease);
}

.vyasa-link-preview-actions button:hover {
    background: var(--vyasa-hover);
    color: var(--vyasa-text);
}

.vyasa-link-preview-actions button[aria-pressed="true"] {
    background: var(--vyasa-accent-3);
    color: var(--vyasa-accent-11);
}

.vyasa-link-preview-tabs {
    display: flex;
    flex: 0 0 auto;
    gap: var(--vyasa-space-1);
    padding: var(--vyasa-space-2);
    overflow-x: auto;
    border-top: 1px solid var(--vyasa-link-preview-border);
    border-bottom: 1px solid var(--vyasa-link-preview-border);
    background: var(--vyasa-bg-subtle);
}

.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: var(--vyasa-radius-md);
    padding: var(--vyasa-space-1) var(--vyasa-space-2);
    background: var(--vyasa-link-preview-surface);
    color: var(--vyasa-text-muted);
    font: var(--vyasa-weight-medium) var(--vyasa-text-sm)/var(--vyasa-leading-snug) var(--vyasa-font-ui);
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--vyasa-duration-fast) var(--vyasa-ease), color var(--vyasa-duration-fast) var(--vyasa-ease);
}
.vyasa-link-preview-tabs button:hover { background: var(--vyasa-hover); color: var(--vyasa-text); }
.vyasa-link-preview-tabs button[aria-selected="true"] {
    border-color: var(--vyasa-accent-7);
    background: var(--vyasa-accent-3);
    box-shadow: inset 0 -2px 0 var(--vyasa-accent-9);
    color: var(--vyasa-text);
}
.vyasa-link-preview-tabs button.vyasa-link-preview-tab-attribute {
    border-color: color-mix(in srgb, var(--vyasa-warning) 40%, var(--vyasa-link-preview-border));
    background: color-mix(in srgb, var(--vyasa-warning) 8%, var(--vyasa-link-preview-surface));
}
.vyasa-link-preview-tabs button.vyasa-link-preview-tab-attribute[aria-selected="true"] {
    border-color: var(--vyasa-warning);
    background: color-mix(in srgb, var(--vyasa-warning) 16%, var(--vyasa-link-preview-surface));
    box-shadow: inset 0 -2px 0 var(--vyasa-warning);
}

.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: var(--vyasa-space-2) var(--vyasa-space-3); color: var(--vyasa-text-muted); font: var(--vyasa-text-sm)/var(--vyasa-leading-snug) var(--vyasa-font-ui); }
.vyasa-link-preview-external-notice a { color: var(--vyasa-link); 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; }

.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 var(--vyasa-space-6) var(--vyasa-space-4) var(--vyasa-space-4);
    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: var(--vyasa-space-4); width: var(--vyasa-code-line-number-width); text-align: right; color: var(--vyasa-text-faint); 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-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: var(--vyasa-radius-sm);
    background: var(--vyasa-accent-4);
    box-shadow: 0 0 0 0.18em var(--vyasa-accent-4);
}

.vyasa-link-preview-plain-text {
    width: max-content;
    min-width: 100%;
    margin: 0;
    font-family: var(--vyasa-font-mono);
    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: var(--vyasa-space-5) 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: var(--vyasa-space-4) var(--vyasa-space-6) var(--vyasa-space-4) var(--vyasa-space-4);
    color: var(--vyasa-text-muted);
    font-size: var(--vyasa-text-base);
}

.vyasa-link-preview-close {
    border: 0;
    background: transparent;
    color: var(--vyasa-danger);
    font: var(--vyasa-weight-medium) var(--vyasa-text-xs)/1 var(--vyasa-font-mono);
    cursor: pointer;
    z-index: 1;
}
