.mystika-library {
    --mystika-bg: #06110d;
    --mystika-panel: #0b1b14;
    --mystika-panel-soft: #10241b;
    --mystika-gold: #d6b86b;
    --mystika-gold-soft: #9f8951;
    --mystika-text: #f1ead7;
    --mystika-muted: #b9b09a;
    --mystika-line: rgba(214, 184, 107, 0.34);
    --mystika-line-soft: rgba(214, 184, 107, 0.16);
    --mystika-shadow: 0 18px 50px rgba(0, 0, 0, 0.24);
    color: var(--mystika-text);
    margin-block: 2rem 4rem;
}

.mystika-library *,
.mystika-library *::before,
.mystika-library *::after {
    box-sizing: border-box;
}

.mystika-library a {
    color: inherit;
    text-decoration: none;
}

.mystika-section-title {
    color: var(--mystika-gold);
    font: inherit;
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    line-height: 1.2;
    text-align: center;
    letter-spacing: 0.03em;
    margin: 0 0 1.6rem;
}

.mystika-universes,
.mystika-timeline,
.mystika-collection,
.mystika-path-catalog {
    margin-block: 3rem;
}

.mystika-universe-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 2.25rem);
}

.mystika-universe-card {
    display: grid;
    grid-template-rows: minmax(220px, 1.15fr) auto;
    border: 1px solid var(--mystika-line);
    background: linear-gradient(180deg, rgba(16, 36, 27, 0.96), rgba(6, 17, 13, 0.98));
    box-shadow: var(--mystika-shadow);
    min-height: 100%;
    overflow: hidden;
    position: relative;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.mystika-universe-card[href]:hover,
.mystika-universe-card[href]:focus-visible {
    transform: translateY(-3px);
    border-color: rgba(214, 184, 107, 0.64);
    box-shadow: 0 22px 58px rgba(0, 0, 0, 0.3);
}

.mystika-universe-card__visual {
    min-height: 220px;
    overflow: hidden;
    position: relative;
    background: radial-gradient(circle at 50% 40%, rgba(214, 184, 107, 0.12), transparent 56%), var(--mystika-panel);
}

.mystika-universe-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 16 / 9;
}

.mystika-universe-card__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 38%, rgba(6, 17, 13, 0.72) 100%);
    pointer-events: none;
}

.mystika-universe-card__placeholder {
    min-height: 100%;
    display: grid;
    place-items: center;
    position: relative;
}

.mystika-universe-card__placeholder::before,
.mystika-universe-card__placeholder::after,
.mystika-universe-card__placeholder span::before {
    content: "";
    position: absolute;
    border: 1px solid var(--mystika-line-soft);
    border-radius: 50%;
}

.mystika-universe-card__placeholder::before { width: 148px; height: 148px; }
.mystika-universe-card__placeholder::after { width: 94px; height: 94px; }
.mystika-universe-card__placeholder span::before { width: 36px; height: 36px; transform: translate(-18px, -18px); }

.mystika-universe-card__body {
    padding: clamp(1.2rem, 3vw, 2rem);
    border-top: 1px solid var(--mystika-line-soft);
}

.mystika-universe-card h3 {
    margin: 0 0 0.75rem;
    color: var(--mystika-gold);
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    line-height: 1.18;
}

.mystika-universe-card p {
    margin: 0;
    color: var(--mystika-muted);
    line-height: 1.65;
}

.mystika-enter {
    display: inline-flex;
    gap: 0.45em;
    align-items: center;
    margin-top: 1.3rem;
    color: var(--mystika-text);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.82rem;
}

.mystika-collection-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.65rem;
    margin: 0 0 2.75rem;
}

.mystika-collection-nav a {
    border: 1px solid var(--mystika-line);
    padding: 0.55rem 0.8rem;
    color: var(--mystika-muted);
    background: rgba(11, 27, 20, 0.72);
}

.mystika-collection-nav a:hover,
.mystika-collection-nav a:focus-visible {
    color: var(--mystika-text);
    border-color: var(--mystika-gold-soft);
}

.mystika-collection {
    scroll-margin-top: 5rem;
}

.mystika-collection__heading {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.3rem;
}

.mystika-collection__heading::before,
.mystika-collection__heading::after {
    content: "";
    height: 1px;
    flex: 1;
    background: linear-gradient(90deg, transparent, var(--mystika-line));
}

.mystika-collection__heading::after {
    background: linear-gradient(90deg, var(--mystika-line), transparent);
}

.mystika-collection__heading h2 {
    margin: 0;
    color: var(--mystika-gold);
    text-align: center;
    font-size: clamp(1.45rem, 2.4vw, 2.15rem);
    line-height: 1.2;
}

.mystika-work-grid {
    display: grid;
    gap: clamp(1rem, 2.8vw, 2rem);
}

.mystika-work-grid--world,
.mystika-work-grid--path {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mystika-work {
    border: 1px solid var(--mystika-line);
    background: linear-gradient(180deg, rgba(12, 29, 21, 0.98), rgba(6, 17, 13, 0.99));
    box-shadow: var(--mystika-shadow);
    min-width: 0;
    overflow: hidden;
}

.mystika-work__book {
    display: grid;
    grid-template-columns: minmax(128px, 37%) 1fr;
    min-height: 270px;
}

.mystika-cover {
    background: #030806;
    min-height: 100%;
    overflow: hidden;
}

.mystika-cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mystika-cover--placeholder {
    display: grid;
    place-items: center;
    color: var(--mystika-gold-soft);
    font-size: 2rem;
    background: radial-gradient(circle, rgba(214, 184, 107, 0.1), transparent 58%), #07100c;
}

.mystika-work__content {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.mystika-status-label {
    align-self: flex-start;
    border: 1px solid var(--mystika-line);
    color: var(--mystika-gold);
    padding: 0.24rem 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.66rem;
    margin-bottom: 0.8rem;
}

.is-upcoming .mystika-status-label {
    color: var(--mystika-muted);
    border-color: rgba(185, 176, 154, 0.26);
}

.mystika-work h3 {
    margin: 0;
    color: var(--mystika-text);
    font-size: clamp(1.25rem, 1.7vw, 1.65rem);
    line-height: 1.2;
}

.mystika-work__taxonomy {
    color: var(--mystika-gold-soft);
    margin: 0.42rem 0 0;
    font-size: 0.88rem;
}

.mystika-work__excerpt {
    color: var(--mystika-muted);
    line-height: 1.55;
    margin: 0.85rem 0 0;
    font-size: 0.92rem;
}

.mystika-editions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 1rem;
}

.mystika-editions a,
.mystika-primary-link,
.mystika-behind-path,
.mystika-chest {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border: 1px solid var(--mystika-gold-soft);
    color: var(--mystika-text);
    background: rgba(214, 184, 107, 0.055);
    padding: 0.56rem 0.72rem;
    font-size: 0.82rem;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.mystika-editions a:hover,
.mystika-editions a:focus-visible,
.mystika-primary-link:hover,
.mystika-primary-link:focus-visible,
.mystika-behind-path:hover,
.mystika-behind-path:focus-visible,
.mystika-chest:hover,
.mystika-chest:focus-visible {
    background: rgba(214, 184, 107, 0.12);
    border-color: var(--mystika-gold);
}

.mystika-work__secret {
    min-height: 128px;
    border-top: 1px solid var(--mystika-line-soft);
    background: radial-gradient(circle at 50% 30%, rgba(214, 184, 107, 0.08), transparent 58%), rgba(3, 10, 7, 0.48);
    display: grid;
    place-items: center;
    padding: 1rem;
}

.mystika-key,
.mystika-rose-button {
    width: 100%;
    border: 0;
    background: transparent;
    color: var(--mystika-text);
    font: inherit;
    cursor: pointer;
    padding: 0.5rem;
}

.mystika-key {
    display: grid;
    place-items: center;
    gap: 0.35rem;
}

.mystika-key__mark {
    color: var(--mystika-gold);
    font-size: 1.25rem;
    transition: transform 220ms ease, text-shadow 220ms ease;
}

.mystika-key__image-wrap {
    display: grid;
    place-items: center;
    width: min(96px, 52%);
    min-height: 72px;
}

.mystika-key__image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 84px;
    object-fit: contain;
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.28));
    transition: transform 220ms ease, filter 220ms ease;
}

.mystika-secret.is-open .mystika-key__image {
    transform: translateY(-2px) scale(1.04);
    filter: drop-shadow(0 7px 18px rgba(214, 184, 107, 0.22));
}

.mystika-key__word {
    color: var(--mystika-gold);
    letter-spacing: 0.16em;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.mystika-secret.is-open .mystika-key__mark {
    transform: rotate(18deg) scale(1.1);
    text-shadow: 0 0 18px rgba(214, 184, 107, 0.6);
}

.mystika-chest-reveal,
.mystika-rose-reveal {
    width: 100%;
    text-align: center;
    margin-top: 0.8rem;
}

.mystika-chest {
    flex-direction: column;
    min-width: min(220px, 100%);
}

.mystika-chest__icon {
    display: block;
    font-size: 2rem;
    color: var(--mystika-gold);
    line-height: 1;
}

.mystika-chest__image-wrap {
    display: grid;
    place-items: center;
    width: min(210px, 100%);
    min-height: 110px;
}

.mystika-chest__image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 155px;
    object-fit: contain;
    filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.38));
    transition: transform 180ms ease, filter 180ms ease;
}

.mystika-chest:hover .mystika-chest__image,
.mystika-chest:focus-visible .mystika-chest__image {
    transform: translateY(-2px) scale(1.025);
    filter: drop-shadow(0 12px 26px rgba(214, 184, 107, 0.18));
}

.mystika-rose-button {
    display: grid;
    place-items: center;
}

.mystika-rose {
    width: min(180px, 75%);
    height: auto;
    overflow: visible;
}

.mystika-rose__outer,
.mystika-rose__network line,
.mystika-rose__trace,
.mystika-rose__point,
.mystika-rose__center {
    vector-effect: non-scaling-stroke;
}

.mystika-rose__outer {
    fill: none;
    stroke: var(--mystika-line);
    stroke-width: 1;
}

.mystika-rose__network {
    opacity: 0.16;
    transition: opacity 350ms ease;
}

.mystika-rose__network line {
    stroke: var(--mystika-gold-soft);
    stroke-width: 0.7;
}

.mystika-rose__trace {
    fill: none;
    stroke: var(--mystika-gold);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 0 2px rgba(214, 184, 107, 0.45));
}

.mystika-rose__point {
    fill: var(--mystika-bg);
    stroke: var(--mystika-gold-soft);
    stroke-width: 0.8;
}

.mystika-rose__center {
    fill: var(--mystika-gold);
}

.mystika-secret.is-open .mystika-rose__network {
    opacity: 0.72;
}

.mystika-rose-caption {
    color: var(--mystika-gold);
    font-size: 0.85rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    margin-top: 0.45rem;
}

.mystika-sealed {
    color: var(--mystika-muted);
    display: grid;
    place-items: center;
    text-align: center;
    gap: 0.45rem;
    opacity: 0.72;
}

.mystika-sealed span {
    color: var(--mystika-gold-soft);
}

.mystika-secret-unavailable {
    color: var(--mystika-muted);
    font-size: 0.86rem;
}

.mystika-path-online {
    text-align: center;
    margin: 2rem auto 3.25rem;
    max-width: 680px;
}

.mystika-path-online p {
    color: var(--mystika-muted);
    margin: 0.85rem 0 0;
}

.mystika-primary-link {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.72rem 1rem;
}

.mystika-timeline {
    max-width: 780px;
    margin-inline: auto;
}

.mystika-timeline__track {
    position: relative;
    padding: 0.25rem 0 0.25rem 2.6rem;
}

.mystika-timeline__track::before {
    content: "";
    position: absolute;
    left: 0.72rem;
    top: 0.25rem;
    bottom: 0.25rem;
    width: 1px;
    background: linear-gradient(180deg, transparent, var(--mystika-line) 8%, var(--mystika-line) 92%, transparent);
}

.mystika-timeline__item,
.mystika-timeline__today {
    position: relative;
    min-height: 66px;
    padding: 0.35rem 0 1rem;
}

.mystika-timeline__dot,
.mystika-timeline__today::before {
    position: absolute;
    content: "";
    left: -2.25rem;
    top: 0.65rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--mystika-bg);
    border: 1px solid var(--mystika-gold-soft);
}

.mystika-timeline__item.is-published .mystika-timeline__dot {
    background: var(--mystika-gold);
}

.mystika-timeline__item strong,
.mystika-timeline__scope,
.mystika-timeline__status,
.mystika-timeline__item time {
    display: block;
}

.mystika-timeline__item strong {
    color: var(--mystika-text);
    line-height: 1.25;
}

.mystika-timeline__scope {
    color: var(--mystika-muted);
    font-size: 0.84rem;
    margin-top: 0.2rem;
}

.mystika-timeline__status,
.mystika-timeline__item time {
    color: var(--mystika-gold-soft);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 0.26rem;
}

.mystika-timeline__item time {
    text-transform: none;
    letter-spacing: 0;
}

.mystika-timeline__today {
    min-height: 58px;
}

.mystika-timeline__today::before {
    width: 18px;
    height: 18px;
    left: -2.5rem;
    top: 0.34rem;
    background: var(--mystika-bg);
    border: 2px solid var(--mystika-gold);
    box-shadow: 0 0 0 5px rgba(214, 184, 107, 0.08);
}

.mystika-timeline__today span {
    color: var(--mystika-gold);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.78rem;
}

.mystika-library-back {
    text-align: center;
    margin-top: 3.5rem;
}

.mystika-library-back a {
    color: var(--mystika-gold);
    border-bottom: 1px solid transparent;
}

.mystika-library-back a:hover,
.mystika-library-back a:focus-visible {
    border-bottom-color: var(--mystika-gold-soft);
}

.mystika-empty {
    text-align: center;
    color: var(--mystika-muted);
    border: 1px dashed var(--mystika-line);
    padding: 1.5rem;
}

@media (max-width: 820px) {
    .mystika-universe-grid,
    .mystika-work-grid--world,
    .mystika-work-grid--path {
        grid-template-columns: 1fr;
    }

    .mystika-universe-card {
        grid-template-rows: minmax(190px, auto) auto;
    }
}

@media (max-width: 560px) {
    .mystika-library {
        margin-block: 1.4rem 3rem;
    }

    .mystika-work__book {
        grid-template-columns: 1fr;
    }

    .mystika-cover {
        min-height: 0;
    }

    .mystika-cover img {
        height: auto;
        aspect-ratio: auto;
        object-fit: contain;
        background: #030806;
    }

    .mystika-work__content {
        padding: 1.15rem;
    }

    .mystika-editions a {
        flex: 1 1 auto;
    }

    .mystika-collection__heading::before,
    .mystika-collection__heading::after {
        display: none;
    }

    .mystika-collection__heading h2 {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mystika-library *,
    .mystika-library *::before,
    .mystika-library *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.001ms !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* v0.4 — navigazione tra le tre pagine */
.mystika-section-switch {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.7rem;
    margin: 0 0 2.4rem;
}

.mystika-section-switch__link,
.mystika-enter-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    border: 1px solid var(--mystika-gold-soft);
    color: var(--mystika-text);
    background: rgba(214, 184, 107, 0.055);
    padding: 0.7rem 1rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-size: 0.78rem;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.mystika-section-switch__link:hover,
.mystika-section-switch__link:focus-visible,
.mystika-enter-button:hover,
.mystika-enter-button:focus-visible {
    background: rgba(214, 184, 107, 0.12);
    border-color: var(--mystika-gold);
    transform: translateY(-1px);
}

.mystika-enter-button {
    margin-top: 1.3rem;
    align-self: flex-start;
}

.mystika-enter-button.is-disabled {
    opacity: 0.55;
    cursor: default;
    transform: none;
}

/* La pagina principale ha già il proprio titolo Gutenberg: nessun secondo titolo introduttivo. */
.mystika-library--home .mystika-universes {
    margin-top: 1.25rem;
}

.mystika-universe-card h2 {
    margin: 0 0 0.75rem;
    color: var(--mystika-gold);
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    line-height: 1.18;
}

/* La card non è più un link implicito: l'accesso è un bottone esplicito. */
.mystika-universe-card {
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

.mystika-universe-card:focus-within {
    border-color: rgba(214, 184, 107, 0.64);
    box-shadow: 0 22px 58px rgba(0, 0, 0, 0.3);
}

/* Con una sola opera evitiamo una mezza pagina vuota. */
.mystika-work-grid > .mystika-work:only-child {
    width: min(100%, 780px);
    grid-column: 1 / -1;
    justify-self: center;
}

/* v0.4 — Le prossime pubblicazioni */
.mystika-upcoming {
    margin-block: 3rem;
}

.mystika-upcoming--section {
    margin-top: 1.2rem;
    margin-bottom: 3.6rem;
}

.mystika-upcoming--home {
    margin-top: 4rem;
    margin-bottom: 0;
}

.mystika-upcoming__track {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 1rem;
    max-width: 1120px;
    margin-inline: auto;
    padding-top: 1.55rem;
}

.mystika-upcoming__track::before {
    content: "";
    position: absolute;
    left: 4%;
    right: 4%;
    top: 0.48rem;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--mystika-line) 7%, var(--mystika-line) 93%, transparent);
}

.mystika-upcoming__item {
    position: relative;
    min-width: 0;
    text-align: center;
}

.mystika-upcoming__dot {
    position: absolute;
    top: -1.42rem;
    left: 50%;
    width: 11px;
    height: 11px;
    transform: translateX(-50%);
    border-radius: 50%;
    background: var(--mystika-bg);
    border: 1px solid var(--mystika-gold);
    box-shadow: 0 0 0 4px rgba(214, 184, 107, 0.06);
}

.mystika-upcoming__card {
    min-height: 100%;
    padding: 0.95rem 0.9rem;
    border: 1px solid var(--mystika-line-soft);
    background: linear-gradient(180deg, rgba(12, 29, 21, 0.76), rgba(6, 17, 13, 0.68));
}

.mystika-upcoming__card strong,
.mystika-upcoming__scope,
.mystika-upcoming__status,
.mystika-upcoming__card time {
    display: block;
}

.mystika-upcoming__card strong {
    color: var(--mystika-text);
    line-height: 1.3;
}

.mystika-upcoming__scope {
    color: var(--mystika-muted);
    font-size: 0.82rem;
    margin-top: 0.32rem;
}

.mystika-upcoming__status,
.mystika-upcoming__card time {
    color: var(--mystika-gold-soft);
    font-size: 0.75rem;
    margin-top: 0.42rem;
    letter-spacing: 0.06em;
}

.mystika-upcoming__status {
    text-transform: uppercase;
}

@media (max-width: 640px) {
    .mystika-section-switch {
        display: grid;
        grid-template-columns: 1fr;
    }

    .mystika-section-switch__link {
        width: 100%;
    }

    /* Timeline a zig-zag attorno a un asse centrale. */
    .mystika-upcoming__track {
        display: block;
        padding-top: 0;
        max-width: 560px;
    }

    .mystika-upcoming__track::before {
        left: 50%;
        right: auto;
        top: 0;
        bottom: 0;
        width: 1px;
        height: auto;
        transform: translateX(-50%);
        background: linear-gradient(180deg, transparent, var(--mystika-line) 5%, var(--mystika-line) 95%, transparent);
    }

    .mystika-upcoming__item {
        width: calc(50% - 18px);
        margin-bottom: 1.05rem;
        text-align: right;
    }

    .mystika-upcoming__item:nth-child(even) {
        margin-left: calc(50% + 18px);
        text-align: left;
    }

    .mystika-upcoming__dot {
        top: 1rem;
        left: auto;
        right: -23.5px;
        transform: none;
    }

    .mystika-upcoming__item:nth-child(even) .mystika-upcoming__dot {
        right: auto;
        left: -23.5px;
    }

    .mystika-upcoming__card {
        padding: 0.8rem 0.72rem;
    }
}

@media (max-width: 390px) {
    .mystika-upcoming__item,
    .mystika-upcoming__item:nth-child(even) {
        width: calc(50% - 14px);
    }

    .mystika-upcoming__item:nth-child(even) {
        margin-left: calc(50% + 14px);
    }

    .mystika-upcoming__dot {
        right: -19.5px;
    }

    .mystika-upcoming__item:nth-child(even) .mystika-upcoming__dot {
        left: -19.5px;
    }

    .mystika-upcoming__card strong {
        font-size: 0.88rem;
    }

    .mystika-upcoming__scope,
    .mystika-upcoming__status,
    .mystika-upcoming__card time {
        font-size: 0.7rem;
    }
}

/* ==========================================================
 * v0.5 — catalogo compatto, categorie e pannelli interattivi
 * ========================================================== */

/* Le porte della pagina principale sono veri link su tutta la card. */
a.mystika-universe-card {
    color: inherit;
    cursor: pointer;
}

a.mystika-universe-card:hover,
a.mystika-universe-card:focus-visible {
    transform: translateY(-3px);
    border-color: rgba(214, 184, 107, 0.64);
    box-shadow: 0 22px 58px rgba(0, 0, 0, 0.3);
    outline: none;
}

a.mystika-universe-card .mystika-enter-button {
    pointer-events: none;
}

/* Amazon: copertina e titolo condividono la destinazione primaria. */
.mystika-cover-link {
    display: block;
    width: 100%;
    height: 100%;
}

.mystika-work__amazon-title {
    color: inherit;
    text-decoration: none;
}

.mystika-work__amazon-title:hover,
.mystika-work__amazon-title:focus-visible {
    color: var(--mystika-gold);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

/* Otto categorie: appaiono solo quando il plugin trova almeno un'opera. */
.mystika-path-category-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.55rem;
    margin: 1.25rem auto 2.8rem;
    max-width: 1180px;
}

.mystika-path-category-nav a {
    border: 1px solid var(--mystika-line);
    background: rgba(11, 27, 20, 0.72);
    color: var(--mystika-muted);
    padding: 0.5rem 0.72rem;
    font-size: 0.78rem;
    line-height: 1.25;
}

.mystika-path-category-nav a:hover,
.mystika-path-category-nav a:focus-visible {
    color: var(--mystika-text);
    border-color: var(--mystika-gold-soft);
}

.mystika-path-category {
    margin-block: 3.7rem;
    scroll-margin-top: 5rem;
}

.mystika-path-category__heading {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.8rem;
}

.mystika-path-category__heading::before,
.mystika-path-category__heading::after {
    content: "";
    height: 1px;
    flex: 1;
    background: linear-gradient(90deg, transparent, var(--mystika-line));
}

.mystika-path-category__heading::after {
    background: linear-gradient(90deg, var(--mystika-line), transparent);
}

.mystika-path-category__heading h2 {
    margin: 0;
    max-width: min(760px, 76%);
    color: var(--mystika-gold);
    text-align: center;
    font-size: clamp(1.35rem, 2.1vw, 2rem);
    line-height: 1.2;
}

.mystika-path-category__description {
    max-width: 760px;
    margin: 0 auto 1.7rem;
    color: var(--mystika-muted);
    text-align: center;
    line-height: 1.6;
}

/* Sentiero / storie interattive: 4 desktop, 2 tablet, 1 mobile.
 * Flex + justify-content:center centra automaticamente ogni riga incompleta. */
.mystika-work-grid--path {
    --mystika-path-gap: clamp(0.85rem, 1.6vw, 1.35rem);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: var(--mystika-path-gap);
}

.mystika-work-grid--path > .mystika-work--path,
.mystika-work-grid--path > .mystika-work--path:only-child {
    flex: 0 1 calc(25% - 1.05rem);
    width: auto;
    max-width: 330px;
    min-width: 0;
    grid-column: auto;
    justify-self: auto;
}

/* La card interattiva diventa verticale e molto più compatta. */
.mystika-work--path .mystika-work__book {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.mystika-work--path .mystika-cover {
    width: 100%;
    min-height: 0;
    aspect-ratio: 2 / 3;
    background: #030806;
}

.mystika-work--path .mystika-cover img,
.mystika-work--path .mystika-cover-link {
    width: 100%;
    height: 100%;
}

.mystika-work--path .mystika-cover img {
    display: block;
    object-fit: cover;
}

.mystika-work--path .mystika-work__content {
    min-height: 172px;
    padding: 0.9rem 0.95rem 1rem;
}

.mystika-work--path .mystika-status-label {
    margin-bottom: 0.55rem;
    font-size: 0.6rem;
}

.mystika-work--path h3 {
    font-size: clamp(1rem, 1.15vw, 1.18rem);
    line-height: 1.2;
}

.mystika-work--path .mystika-work__excerpt {
    margin-top: 0.6rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 0.82rem;
    line-height: 1.45;
}

.mystika-work--path .mystika-editions {
    gap: 0.35rem;
    padding-top: 0.75rem;
}

.mystika-work--path .mystika-editions a {
    padding: 0.45rem 0.55rem;
    font-size: 0.72rem;
}

/* Il portale non occupa spazio esterno: vive nel pannello inferiore della card. */
.mystika-work--path .mystika-work__secret {
    min-height: 122px;
    padding: 0.65rem 0.75rem;
}

.mystika-work--path .mystika-rose {
    width: min(118px, 62%);
}

.mystika-work--path .mystika-rose-caption {
    font-size: 0.7rem;
    margin-top: 0.25rem;
}

.mystika-work--path .mystika-rose-reveal,
.mystika-work--world .mystika-chest-reveal {
    animation: none;
}

.mystika-secret.is-open {
    background: radial-gradient(circle at 50% 28%, rgba(214, 184, 107, 0.14), transparent 62%), rgba(3, 10, 7, 0.62);
}

.mystika-secret-portal {
    margin-top: 0.15rem;
}

/* Il Forziere resta interno al pannello, senza creare un nuovo blocco laterale. */
.mystika-work--world .mystika-work__secret {
    overflow: hidden;
}

/* Tablet: due opere per riga. */
@media (max-width: 1050px) {
    .mystika-work-grid--path > .mystika-work--path,
    .mystika-work-grid--path > .mystika-work--path:only-child {
        flex-basis: calc(50% - 0.7rem);
        max-width: 420px;
    }
}

/* Mobile: una sola opera; la riga resta centrata. */
@media (max-width: 620px) {
    .mystika-path-category-nav {
        display: grid;
        grid-template-columns: 1fr;
    }

    .mystika-path-category__heading::before,
    .mystika-path-category__heading::after {
        display: none;
    }

    .mystika-path-category__heading h2 {
        width: 100%;
        max-width: none;
    }

    .mystika-work-grid--path > .mystika-work--path,
    .mystika-work-grid--path > .mystika-work--path:only-child {
        flex: 0 1 min(100%, 430px);
        max-width: 430px;
    }
}

/* v0.5.4 — gerarchia catalogo e compattezza responsive */

/* Le opere già pubblicate devono emergere prima anche visivamente. */
.mystika-work.is-published {
    border-color: rgba(214, 184, 107, 0.48);
}

.mystika-work.is-upcoming {
    border-color: rgba(185, 176, 154, 0.2);
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.18);
}

/* Leggero compattamento desktop senza cambiare la grammatica delle card. */
.mystika-work--world .mystika-work__book {
    min-height: 245px;
}

.mystika-work--world .mystika-work__content {
    padding: 1.05rem;
}

@media (max-width: 620px) {
    /*
     * Mobile: una card resta una sola colonna nel catalogo, ma al suo interno
     * copertina e dati tornano affiancati. In questo modo la copertina non
     * consuma un'intera viewport prima di raggiungere Chiave/Rosa/Forziere.
     */
    .mystika-work__book,
    .mystika-work--path .mystika-work__book {
        display: grid;
        grid-template-columns: minmax(96px, 31%) minmax(0, 1fr);
        align-items: start;
        min-height: 0;
    }

    .mystika-cover,
    .mystika-work--path .mystika-cover {
        width: 100%;
        min-height: 0;
        height: auto;
        aspect-ratio: auto;
        align-self: start;
        display: grid;
        place-items: start center;
        overflow: hidden;
        padding: 0.42rem;
        background: rgba(3, 8, 6, 0.28);
    }

    .mystika-cover-link,
    .mystika-work--path .mystika-cover-link {
        width: 100%;
        height: auto;
        display: grid;
        place-items: start center;
    }

    .mystika-cover img,
    .mystika-work--path .mystika-cover img {
        display: block;
        width: 100%;
        height: auto;
        max-height: 215px;
        aspect-ratio: auto;
        object-fit: contain;
        object-position: center top;
        background: transparent;
    }

    .mystika-work__content,
    .mystika-work--path .mystika-work__content {
        min-height: 0;
        padding: 0.72rem 0.78rem 0.82rem;
    }

    .mystika-status-label,
    .mystika-work--path .mystika-status-label {
        margin-bottom: 0.42rem;
        padding: 0.18rem 0.4rem;
        font-size: 0.56rem;
    }

    .mystika-work h3,
    .mystika-work--path h3 {
        font-size: 1rem;
        line-height: 1.18;
    }

    .mystika-work__excerpt,
    .mystika-work--path .mystika-work__excerpt {
        margin-top: 0.45rem;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: 0.76rem;
        line-height: 1.38;
    }

    .mystika-editions,
    .mystika-work--path .mystika-editions {
        gap: 0.3rem;
        padding-top: 0.55rem;
    }

    .mystika-editions a,
    .mystika-work--path .mystika-editions a {
        flex: 0 1 auto;
        padding: 0.38rem 0.48rem;
        font-size: 0.66rem;
    }

    /* Il pannello segreto non deve diventare una seconda card verticale. */
    .mystika-work__secret,
    .mystika-work--path .mystika-work__secret {
        min-height: 0;
        padding: 0.55rem 0.65rem;
    }

    .mystika-key,
    .mystika-rose-button {
        padding: 0.25rem;
        gap: 0.2rem;
    }

    .mystika-key__image-wrap {
        width: min(72px, 34vw);
        min-height: 0;
    }

    .mystika-key__image {
        max-height: 62px;
    }

    .mystika-key__word {
        font-size: 0.92rem;
        letter-spacing: 0.13em;
    }

    /* Dopo l'attivazione la grande immagine della chiave lascia subito posto al Forziere. */
    .mystika-secret--chest.is-open .mystika-key__image-wrap,
    .mystika-secret--chest.is-open .mystika-key__mark {
        display: none;
    }

    .mystika-secret--chest.is-open .mystika-key {
        padding-block: 0.1rem;
    }

    .mystika-chest-reveal,
    .mystika-rose-reveal {
        margin-top: 0.3rem;
    }

    .mystika-chest {
        min-width: 0;
        width: min(180px, 100%);
        padding: 0.42rem 0.55rem;
        gap: 0.25rem;
    }

    .mystika-chest__image-wrap {
        width: min(145px, 100%);
        min-height: 0;
    }

    .mystika-chest__image {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 105px;
        object-fit: contain;
    }

    .mystika-work--path .mystika-rose {
        width: min(92px, 42vw);
    }

    .mystika-work--path .mystika-work__secret {
        min-height: 0;
    }
}

@media (max-width: 390px) {
    .mystika-work__book,
    .mystika-work--path .mystika-work__book {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    .mystika-cover img,
    .mystika-work--path .mystika-cover img {
        max-height: 175px;
    }

    .mystika-work__content,
    .mystika-work--path .mystika-work__content {
        padding-inline: 0.65rem;
    }
}

/* v0.5.5 — Mobile card refinement and robust media proportions. */
@media (max-width: 620px) {
    .mystika-work__book,
    .mystika-work--path .mystika-work__book {
        grid-template-columns: minmax(116px, 38%) minmax(0, 1fr);
        column-gap: 0;
        align-items: start;
    }

    .mystika-cover,
    .mystika-work--path .mystika-cover {
        width: 100%;
        aspect-ratio: 2 / 3;
        height: auto;
        padding: 0;
        margin: 0;
        align-self: start;
        overflow: hidden;
        background: transparent;
        line-height: 0;
    }

    .mystika-cover-link,
    .mystika-work--path .mystika-cover-link {
        display: block;
        width: 100%;
        height: 100%;
        line-height: 0;
    }

    .mystika-cover img,
    .mystika-work--path .mystika-cover img {
        display: block;
        width: 100%;
        height: 100%;
        max-height: none;
        margin: 0;
        object-fit: cover;
        object-position: center;
        background: transparent;
    }

    .mystika-work__content,
    .mystika-work--path .mystika-work__content {
        padding: 0.82rem 0.85rem 0.9rem;
    }

    .mystika-work h3,
    .mystika-work--path h3 {
        font-size: 1.08rem;
        line-height: 1.16;
    }

    .mystika-work__excerpt,
    .mystika-work--path .mystika-work__excerpt {
        font-size: 0.79rem;
        line-height: 1.4;
    }

    .mystika-key__image-wrap {
        width: min(110px, 42vw);
    }

    .mystika-key__image {
        max-height: 88px;
    }

    .mystika-key__word {
        font-size: 1rem;
    }

    .mystika-chest {
        width: min(210px, 82vw);
    }

    .mystika-chest__image-wrap {
        width: min(185px, 76vw);
    }

    .mystika-chest__image {
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: 132px;
        object-fit: contain;
    }
}

@media (max-width: 390px) {
    .mystika-work__book,
    .mystika-work--path .mystika-work__book {
        grid-template-columns: minmax(108px, 39%) minmax(0, 1fr);
    }

    .mystika-work h3,
    .mystika-work--path h3 {
        font-size: 1.02rem;
    }

    .mystika-key__image-wrap {
        width: min(100px, 40vw);
    }

    .mystika-key__image {
        max-height: 80px;
    }
}


/* v0.5.6 — Le copertine sono contenuto editoriale: mai ritagliarle. */
.mystika-cover img,
.mystika-work--path .mystika-cover img {
    object-fit: contain;
    object-position: center;
}

@media (max-width: 620px) {
    .mystika-cover,
    .mystika-work--path .mystika-cover {
        background: transparent;
    }

    .mystika-cover img,
    .mystika-work--path .mystika-cover img {
        width: 100%;
        height: 100%;
        max-height: none;
        object-fit: contain;
        object-position: center;
        background: transparent;
    }
}

/* v0.5.7 — Mobile cover visibility fix.
 * Su smartphone la copertina non dipende più da catene di height:100% su
 * contenitori con altezza automatica/aspect-ratio. L'immagine usa la propria
 * proporzione intrinseca, riempie la larghezza assegnata e resta sempre intera.
 */
@media (max-width: 620px) {
    .mystika-cover,
    .mystika-work--path .mystika-cover {
        display: block;
        width: 100%;
        height: auto;
        min-height: 0;
        aspect-ratio: auto;
        overflow: visible;
        background: transparent;
        line-height: 0;
    }

    .mystika-cover-link,
    .mystika-work--path .mystika-cover-link {
        display: block;
        width: 100%;
        height: auto;
        min-height: 0;
        line-height: 0;
    }

    .mystika-cover img,
    .mystika-work--path .mystika-cover img {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        max-width: 100%;
        height: auto !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        object-fit: contain;
        object-position: center top;
        margin: 0;
        background: transparent;
    }
}

/* v0.5.8 — Mobile world-card geometry fix.
 * La v0.5.7 rendeva la cover visibile lasciando però l'altezza del blocco
 * dipendere dalla geometria intrinseca dell'immagine. In alcune combinazioni
 * browser/tema questo poteva allungare enormemente la parte "libro" della card.
 * Qui la cover torna ad avere un riquadro editoriale 2:3 stabile, ma l'immagine
 * viene posizionata assolutamente al suo interno: resta intera e non può più
 * determinare l'altezza della riga.
 */
@media (max-width: 620px) {
    .mystika-work-grid--world {
        align-items: start;
    }

    .mystika-work--world {
        height: auto !important;
        min-height: 0;
        align-self: start;
    }

    .mystika-work--world .mystika-work__book {
        height: auto !important;
        min-height: 0 !important;
        align-items: start;
    }

    .mystika-work--world .mystika-cover {
        position: relative;
        display: block;
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 2 / 3 !important;
        align-self: start;
        overflow: hidden;
        background: transparent;
        line-height: 0;
    }

    .mystika-work--world .mystika-cover-link {
        position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100% !important;
        min-height: 0;
        line-height: 0;
    }

    .mystika-work--world .mystika-cover img {
        position: absolute;
        inset: 0;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        max-width: 100%;
        height: 100% !important;
        max-height: none !important;
        margin: 0;
        object-fit: contain;
        object-position: center top;
        background: transparent;
    }

    .mystika-work--world .mystika-work__content {
        height: auto !important;
        min-height: 0 !important;
        align-self: start;
    }
}

/* v0.5.9 — Generic contextual return control for Forziere/Rosa backstage pages. */
.mystika-return-button {
    appearance: none;
    border: 1px solid rgba(201, 174, 105, 0.72);
    background: rgba(5, 24, 18, 0.72);
    color: inherit;
    font: inherit;
    letter-spacing: 0.04em;
    padding: 0.8em 1.25em;
    cursor: pointer;
}

.mystika-return-button:hover,
.mystika-return-button:focus-visible {
    background: rgba(201, 174, 105, 0.10);
}

/* ==========================================================
 * v0.6.0 — Storie delle Infinite Possibilità: card compatte
 *
 * Desktop e mobile condividono la stessa gerarchia:
 * copertina verticale compatta a sinistra, dati a destra,
 * Rosa dei Sentieri subito sotto. La modifica è limitata alle
 * card .mystika-work--path e non altera le raccolte dal mondo.
 * ========================================================== */

/* Le righe non devono allungare le card più corte fino alla più alta. */
.mystika-work-grid--path {
    align-items: flex-start;
}

.mystika-work--path {
    align-self: flex-start;
}

/* Desktop: libro e metadati affiancati anche quando restano 4 card per riga. */
.mystika-work--path .mystika-work__book {
    display: grid;
    grid-template-columns: clamp(112px, 38%, 138px) minmax(0, 1fr);
    align-items: stretch;
    min-height: 0;
}

.mystika-work--path .mystika-cover {
    display: block;
    width: 100%;
    min-height: 0;
    height: auto;
    aspect-ratio: 2 / 3;
    align-self: start;
    overflow: hidden;
    background: rgba(3, 8, 6, 0.42);
    line-height: 0;
}

.mystika-work--path .mystika-cover-link {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    line-height: 0;
}

.mystika-work--path .mystika-cover img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100%;
    height: 100% !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    margin: 0;
    object-fit: contain;
    object-position: center top;
    background: transparent;
}

.mystika-work--path .mystika-work__content {
    min-height: 0;
    padding: 0.72rem 0.76rem 0.78rem;
}

.mystika-work--path .mystika-status-label {
    margin-bottom: 0.42rem;
    padding: 0.18rem 0.38rem;
    font-size: 0.55rem;
}

.mystika-work--path h3 {
    font-size: clamp(0.94rem, 1.05vw, 1.08rem);
    line-height: 1.16;
}

.mystika-work--path .mystika-work__excerpt {
    margin-top: 0.45rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 0.74rem;
    line-height: 1.35;
}

.mystika-work--path .mystika-editions {
    gap: 0.3rem;
    margin-top: auto;
    padding-top: 0.55rem;
}

.mystika-work--path .mystika-editions a {
    flex: 0 1 auto;
    padding: 0.36rem 0.44rem;
    font-size: 0.64rem;
}

/* Rosa subito sotto il libro: resta protagonista, ma non crea una seconda viewport. */
.mystika-work--path .mystika-work__secret {
    min-height: 0;
    padding: 0.48rem 0.62rem 0.58rem;
}

.mystika-work--path .mystika-rose-button {
    padding: 0.18rem;
    gap: 0.12rem;
}

.mystika-work--path .mystika-rose {
    width: min(82px, 36%);
}

.mystika-work--path .mystika-rose-caption {
    margin-top: 0.16rem;
    font-size: 0.64rem;
    letter-spacing: 0.075em;
}

.mystika-work--path .mystika-rose-reveal {
    margin-top: 0.22rem;
}

.mystika-work--path .mystika-behind-path {
    padding: 0.42rem 0.56rem;
    font-size: 0.68rem;
}

/* Tablet: si mantiene il layout laterale, con cover appena più presente. */
@media (max-width: 1050px) {
    .mystika-work--path .mystika-work__book {
        grid-template-columns: clamp(118px, 36%, 148px) minmax(0, 1fr);
    }
}

/* Mobile: una sola card per riga, ma libro e Rosa devono stare nello stesso colpo d'occhio. */
@media (max-width: 620px) {
    .mystika-work-grid--path {
        align-items: flex-start;
    }

    .mystika-work--path {
        height: auto !important;
        min-height: 0;
    }

    .mystika-work--path .mystika-work__book {
        display: grid;
        grid-template-columns: clamp(108px, 34vw, 142px) minmax(0, 1fr);
        align-items: stretch;
        min-height: 0 !important;
        height: auto !important;
    }

    .mystika-work--path .mystika-cover {
        display: block;
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 2 / 3 !important;
        align-self: start;
        overflow: hidden;
        padding: 0;
        margin: 0;
        background: rgba(3, 8, 6, 0.36);
        line-height: 0;
    }

    .mystika-work--path .mystika-cover-link {
        display: block;
        width: 100%;
        height: 100% !important;
        min-height: 0;
        line-height: 0;
    }

    .mystika-work--path .mystika-cover img {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        max-width: 100%;
        height: 100% !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        object-fit: contain;
        object-position: center top;
        margin: 0;
        background: transparent;
    }

    .mystika-work--path .mystika-work__content {
        min-height: 0 !important;
        padding: 0.62rem 0.66rem 0.68rem;
    }

    .mystika-work--path h3 {
        font-size: 0.98rem;
        line-height: 1.14;
    }

    .mystika-work--path .mystika-work__excerpt {
        margin-top: 0.38rem;
        -webkit-line-clamp: 2;
        font-size: 0.72rem;
        line-height: 1.32;
    }

    .mystika-work--path .mystika-editions {
        gap: 0.28rem;
        padding-top: 0.45rem;
    }

    .mystika-work--path .mystika-editions a {
        flex: 0 1 auto;
        padding: 0.34rem 0.42rem;
        font-size: 0.62rem;
    }

    .mystika-work--path .mystika-work__secret {
        min-height: 0;
        padding: 0.42rem 0.55rem 0.5rem;
    }

    .mystika-work--path .mystika-rose {
        width: min(76px, 28vw);
    }

    .mystika-work--path .mystika-rose-caption {
        margin-top: 0.12rem;
        font-size: 0.62rem;
    }

    .mystika-work--path .mystika-rose-reveal {
        margin-top: 0.18rem;
    }
}

@media (max-width: 390px) {
    .mystika-work--path .mystika-work__book {
        grid-template-columns: clamp(104px, 34vw, 126px) minmax(0, 1fr);
    }

    .mystika-work--path h3 {
        font-size: 0.93rem;
    }

    .mystika-work--path .mystika-work__excerpt {
        -webkit-line-clamp: 1;
    }

    .mystika-work--path .mystika-rose {
        width: min(72px, 27vw);
    }
}


/* =========================================================
 * v0.6.1 — Collegamenti diretti alle singole Opere
 * ========================================================= */
.mystika-work {
    position: relative;
}

.mystika-work-anchor {
    display: block;
    width: 0;
    height: 0;
    overflow: hidden;
    scroll-margin-top: 120px;
}

.mystika-work.mystika-target-highlight {
    animation: mystikaTargetGlow 2.2s ease-out both;
}

@keyframes mystikaTargetGlow {
    0% {
        border-color: var(--mystika-line);
        box-shadow: var(--mystika-shadow);
    }
    28% {
        border-color: rgba(214, 184, 107, 0.92);
        box-shadow: 0 0 0 2px rgba(214, 184, 107, 0.18), 0 0 34px rgba(214, 184, 107, 0.32), var(--mystika-shadow);
    }
    100% {
        border-color: var(--mystika-line);
        box-shadow: var(--mystika-shadow);
    }
}

.mystika-book-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    border: 1px solid var(--mystika-gold-soft, #9f8951);
    color: var(--mystika-text, #f1ead7);
    background: rgba(214, 184, 107, 0.055);
    padding: 0.72rem 1rem;
    text-decoration: none;
    line-height: 1.25;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.mystika-book-link:hover,
.mystika-book-link:focus-visible {
    background: rgba(214, 184, 107, 0.12);
    border-color: var(--mystika-gold, #d6b86b);
    transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
    .mystika-work.mystika-target-highlight {
        animation: none;
        border-color: rgba(214, 184, 107, 0.92);
        box-shadow: 0 0 0 2px rgba(214, 184, 107, 0.18), var(--mystika-shadow);
    }
}
