@font-face {
    font-family: 'Beleren';
    src: url('fonts/Beleren2016SmallCaps-Bold.ttf') format('truetype');
    font-weight: bold;
}
@font-face {
    font-family: 'Plantin';
    src: url('fonts/Plantin Roman.ttf') format('truetype');
    font-weight: normal;
}

:root {
    --card-border: #171314;
    --land-grey: #d1d1d1; 
    --text-box-bg: rgba(255, 255, 255, 0.88);
}

body, html {
    margin: 0; padding: 0; height: 100%;
    background-color: #0c0c0c; 
    display: flex; justify-content: center; align-items: center;
    font-family: 'Plantin', serif; overflow: hidden;
}

#click-shield {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    z-index: 999; display: flex; justify-content: center; align-items: center;
    background: rgba(0,0,0,0.8); color: white; cursor: pointer; transition: 0.5s;
}

.shield-box {
    background: #171314; padding: 30px; border: 3px solid var(--land-grey);
    border-radius: 15px; text-align: center; box-shadow: 0 0 30px black;
}

.hidden-picker {
    position: fixed; top: 10px; right: 10px; z-index: 1000;
    display: none; background: #fff; border: 2px solid var(--card-border);
}

.card-container {
    width: 90vw; height: 126vw; 
    max-width: 600px; max-height: 840px;
    background: var(--land-grey);
    border: 16px solid var(--card-border);
    border-radius: 24px;
    display: flex; flex-direction: column;
    padding: 12px; box-sizing: border-box;
    box-shadow: 0 15px 60px rgba(0,0,0,1);
}

.card-bar {
    background: linear-gradient(to bottom, #e8e8e8, #a8a8a8);
    border: 2px solid var(--card-border);
    border-radius: 6px / 12px;
    padding: 4px 12px;
    display: flex; justify-content: space-between; align-items: center;
    flex-shrink: 0;
}

.card-name { font-family: 'Beleren', serif; font-size: 1.4rem; color: #111; text-transform: uppercase; margin: 0; }
.card-name-sub { font-family: 'Beleren', serif; font-size: 1.15rem; color: #111; margin: 0; }

.nav-icons a { color: #111; text-decoration: none; margin-left: 10px; font-size: 1.1rem; }

.art-window { 
    height: 45%; margin: 8px 0; border: 3px solid var(--card-border);
    background-size: cover; background-position: center; flex-shrink: 0;
}

.text-box { 
    background: var(--text-box-bg); border: 2px solid var(--card-border);
    padding: 15px 25px; flex-grow: 1; display: flex; flex-direction: column;
    justify-content: center; overflow-y: auto;
}

.flavor-text { font-style: italic; text-align: center; font-size: 1.25rem; color: #111; line-height: 1.2; transition: opacity 0.5s; }

.footer-credits { 
    font-size: 0.62rem; color: #222; display: flex; 
    justify-content: space-between; align-items: center; padding: 6px 5px 0 5px; font-weight: bold;
}

.control-link { cursor: pointer; text-decoration: underline; margin: 0 2px; }
.current-voice-btn { cursor: pointer; color: #0056b3; text-decoration: underline; font-weight: bold; }

.audio-controls { display: flex; gap: 4px; align-items: center; }

@media (min-aspect-ratio: 5/7) { .card-container { width: calc(96vh * 0.71); height: 96vh; } }