:host {
    --fc-width: 100%;
    --fc-front-bg: #ffffff;
    --fc-front-text-color: #111;
    --fc-back-bg: #f5f5f5;
    --fc-back-text-color: #111;
    --fc-radius: 12px;
    --fc-font: SFMono-Regular;

    display: block;
    width: var(--fc-width);
    contain: content;
    height: 100%;
}

.flip-card {
    position: relative;
    box-sizing: border-box;
    height: 100%;
}

.card {
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.6s ease;
    cursor: pointer;
    border-radius: var(--fc-radius);
    outline: none;
    box-sizing: border-box;
    height: 100%;
}

:host([flipped]) .card {
    transform: rotateY(180deg);
}

@media (prefers-reduced-motion: reduce) {
    .card {
        transition: none;
    }
}

.face {
    position: absolute;
    inset: 0;
    display: flex;
    padding: clamp(0.8rem, 3vw, 2rem);
    backface-visibility: hidden;
    border-radius: var(--fc-radius);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.08),
        0 8px 24px rgba(0, 0, 0, 0.08);
}

.front {
    background: var(--fc-front-bg);
    color: var(--fc-front-text-color);
    font-family: var(--fc-font), sans-serif;
    font-weight: 700;
    font-size: clamp(1.2rem, 3vw, 2.6rem);
    text-align: left;
    align-items: end;
    justify-content: left;
}

.back {
    background: var(--fc-back-bg);
    color: var(--fc-back-text-color);
    transform: rotateY(180deg);
    font-family: var(--fc-font), sans-serif;
    font-weight: 300;
    font-size: clamp(0.8rem, 2.2vw, 1.4rem);
    text-align: justify;
    align-items: start;
    justify-content: left;
}

.card:focus-visible {
    box-shadow:
        0 0 0 3px rgba(59, 130, 246, 0.5),
        0 1px 2px rgba(0, 0, 0, 0.08),
        0 8px 24px rgba(0, 0, 0, 0.08);
}























