/* ── PAGE-SPECIFIC: email list ── */
/* Nav colours go on :root, never on a body class -- see
   docs/ops/frontend.md, "Theming nav colors". */
:root {
    --nav-accent: var(--rose);
    --nav-glow: rgba(255,61,110,0.4);
    --nav-brand: #ff9bb4;
    --nav-brand-glow: rgba(255,155,180,0.7);
}

.breadcrumb {
    font-family: 'Press Start 2P', monospace;
    font-size: 7px;
    color: var(--dim);
    letter-spacing: 0.1em;
    margin-top: -8px;
    margin-bottom: 16px;
    align-self: flex-start;
}
.breadcrumb a { color: var(--dim); text-decoration: none; transition: color 0.15s; }
.breadcrumb a:hover { color: var(--nearwhite); }
.breadcrumb .sep { margin: 0 8px; color: var(--nearwhite); opacity: 0.7; }
.breadcrumb .current { color: var(--nearwhite); }

main {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 80px 20px 60px;
    box-shadow:
        inset 0 0 100px rgba(255,61,110,0.02),
        inset 0 0 200px rgba(255,61,110,0.01);
}

.page-title {
    font-family: 'Press Start 2P', monospace;
    font-size: 18px;
    color: var(--rose);
    text-shadow: 0 0 16px rgba(255,61,110,0.7), 0 0 32px rgba(255,61,110,0.3);
    margin-bottom: 10px;
    letter-spacing: 0.1em;
    animation: fadeUp 0.5s ease both;
}

.page-subtitle {
    font-family: 'Press Start 2P', monospace;
    font-size: 7px;
    color: var(--yellow);
    letter-spacing: 0.1em;
    margin-bottom: 36px;
    text-shadow: 0 0 8px rgba(255,224,58,0.4);
    animation: fadeUp 0.5s 0.05s ease both;
}

/* Larger and less transparent than the guestbook's 10px / 0.8, which carries a
   dense drawing. This is line art 30 characters wide: thin strokes with a lot
   of space between them, and at 10px the flap diagonals read as scattered
   marks rather than as an envelope. */
.ascii-art {
    font-family: 'Courier Prime', monospace;
    font-size: 14px;
    color: var(--rose);
    text-shadow: 0 0 6px rgba(255,61,110,0.3);
    line-height: 1.25;
    margin-bottom: 28px;
    text-align: center;
    opacity: 0.9;
    animation: fadeUp 0.5s ease both;
    white-space: pre;
}

.list-wrap {
    width: min(680px, 95vw);
    animation: fadeUp 0.5s 0.1s ease both;
}

/* ── FORM ── */
.form-container {
    border: 2px solid var(--rose);
    background: #0a0a0a;
    padding: 24px;
    margin-bottom: 36px;
    box-shadow:
        0 0 0 1px var(--rose),
        0 0 20px rgba(255,61,110,0.15),
        inset 0 0 60px rgba(255,61,110,0.03);
    position: relative;
}

.form-label {
    display: block;
    font-family: 'Press Start 2P', monospace;
    font-size: 8px;
    color: var(--rose);
    letter-spacing: 0.1em;
    margin-bottom: 12px;
    text-shadow: 0 0 8px rgba(255,61,110,0.4);
}

.form-container input {
    width: 100%;
    padding: 10px 14px;
    margin-bottom: 16px;
    background: #000;
    border: 1px solid var(--nearwhite);
    color: var(--nearwhite);
    font-family: 'Courier Prime', monospace;
    font-size: 14px;
    transition: all 0.2s;
    outline: none;
    display: block;
    box-sizing: border-box;
}

.form-container input:focus {
    border-color: var(--rose);
    box-shadow: 0 0 10px rgba(255,61,110,0.5), 0 0 20px rgba(240,240,240,0.1);
    background: rgba(255,61,110,0.05);
}

.form-container input::placeholder {
    color: var(--nearwhite);
    opacity: 0.5;
}

.form-container input:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* The honeypot.
   Taken out of the layout without display:none or visibility:hidden, both of
   which a form-filling bot is as likely to respect as a browser is. Offscreen
   and zero-opacity leaves it in the accessibility tree, so aria-hidden and
   tabindex="-1" on the markup are what keep a screen reader and the tab order
   away from it. */
.hp {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.submit-btn {
    font-family: 'Press Start 2P', monospace;
    font-size: 9px;
    background: var(--rose);
    color: #000;
    border: 2px solid var(--rose);
    padding: 12px 24px;
    cursor: pointer;
    letter-spacing: 0.1em;
    transition: all 0.15s;
    position: relative;
}
.submit-btn:hover:not(:disabled) {
    background: #000;
    color: var(--yellow);
    border-color: var(--yellow);
    box-shadow: 0 0 20px rgba(255,224,58,0.4), 0 0 30px rgba(255,224,58,0.2);
}
.submit-btn:active:not(:disabled) {
    transform: translate(2px, 2px);
}
.submit-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.submit-status {
    font-family: 'Press Start 2P', monospace;
    font-size: 7px;
    margin-top: 10px;
    min-height: 16px;
    letter-spacing: 0.08em;
    line-height: 1.8;
    color: var(--dim);
}
.submit-status.ok      { color: var(--rose);   }
.submit-status.error   { color: var(--yellow); }
.submit-status.pending { color: var(--dim);    }
.submit-status a         { color: var(--rose); }
.submit-status a:hover   { color: var(--yellow); }

/* ── THE DEAL ── */
.terms-header {
    font-family: 'Press Start 2P', monospace;
    font-size: 8px;
    color: var(--rose);
    letter-spacing: 0.1em;
    margin-bottom: 16px;
    text-shadow: 0 0 8px rgba(255,61,110,0.4);
}

.terms {
    border: 1px solid #1a0a10;
    background: #0a0505;
    padding: 20px 22px;
}

.terms ul {
    margin: 0;
    padding-left: 18px;
    list-style: none;
}

.terms li {
    font-family: 'Courier Prime', monospace;
    font-size: 13px;
    color: var(--white);
    line-height: 1.7;
    opacity: 0.9;
    margin-bottom: 14px;
    position: relative;
}
.terms li:last-child { margin-bottom: 0; }
.terms li::before {
    content: '▶ ';
    color: var(--rose);
    opacity: 0.6;
    position: absolute;
    left: -18px;
}
.terms li b { color: var(--rose); font-weight: 700; }
.terms a         { color: var(--yellow); }
.terms a:hover   { color: var(--rose); }

/* ── FOOTER ── */
footer { color: var(--dim); border-top-color: #1a0a10; }
footer span { color: var(--rose); }

/* ── JUKEBOX OVERRIDES ── */
.mcj-bar { border-color: var(--rose); }
.mcj-bar:hover { border-color: var(--yellow); box-shadow: 0 0 12px rgba(255,224,58,0.3); }
.mcj-bar-label { color: var(--rose); text-shadow: 0 0 6px rgba(255,61,110,0.5); }
.mcj-btn { border-color: var(--rose); color: var(--rose); }
.mcj-btn:hover { background: var(--rose); color: #000; }
.mcj-btn-play { background: var(--yellow); color: #000; border-color: var(--yellow); }
.mcj-btn-play:hover { background: #000; color: var(--yellow); border-color: var(--yellow); }
.mcj-vinyl { box-shadow: 0 0 0 2px var(--rose), 0 0 16px rgba(255,61,110,0.4); }

@media (max-width: 640px) {
    .page-title { font-size: 13px; }
    /* 30 characters have to fit the viewport without wrapping, since
       white-space: pre would break the drawing rather than reflow it. */
    .ascii-art { font-size: 10px; }
    .terms li { font-size: 12px; }
}
