/*** Mastering page (mastering.php) ***/

.mst-hero {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    padding: 34px 20px 48px;
    text-align: center;
    container-type: inline-size;
    background:
        radial-gradient(ellipse 55% 45% at 50% 28%, rgba(235, 40, 90, .16), transparent 70%),
        radial-gradient(ellipse 60% 60% at 70% 75%, rgba(130, 40, 200, .14), transparent 70%),
        #0d0b12;
}
/* faint scanlines, like the reference */
.mst-hero::after {
    content: "";
    position: absolute; inset: 0;
    background: repeating-linear-gradient(to bottom, rgba(255, 255, 255, .025) 0 1px, transparent 1px 4px);
    pointer-events: none;
}
.mst-hero > * { position: relative; z-index: 1; }

.mst-wave { display: block; width: 100%; height: clamp(110px, 22cqi, 190px); margin: 0 auto; }

/* "MASTERED": ~9.6em wide with its tracking, so 9.4% of the card keeps it on one line */
.mst-title {
    margin: 26px 0 0;
    padding-left: .35em;                 /* balances the trailing letter-spacing */
    font-family: var(--heading-font);
    font-weight: 300;
    font-size: clamp(2.2rem, 9.4cqi, 6.6rem);
    letter-spacing: .35em;
    line-height: 1;
    color: #f3ece2;
    text-shadow: 0 0 18px rgba(255, 200, 150, .45), 0 0 50px rgba(255, 120, 90, .25);
}
.mst-sub {
    margin: 22px 0 0;
    font-size: clamp(1rem, 2.4cqi, 1.35rem);
    color: #8a86a0;
    letter-spacing: .02em;
}

.mst-cta { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 18px 26px; align-items: center; justify-content: center; }
.mst-upload-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 12px;
    padding: 18px 40px;
    border: 0; border-radius: 999px;
    background: linear-gradient(90deg, #ff6f5e, #f7a72f);
    color: #120c0a; font-weight: 700; font-size: 1.1rem;
    box-shadow: 0 0 28px rgba(255, 130, 70, .45);
    cursor: pointer;
    transition: transform .15s, box-shadow .2s;
}
.mst-upload-btn:hover, .mst-upload-btn:focus-visible { transform: translateY(-1px); box-shadow: 0 0 40px rgba(255, 140, 70, .65); outline: none; }
.mst-upload-btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.mst-ba-link { color: #8a86a0; }
.mst-ba-link:hover { color: #fff; }
.mst-ba-link i { margin-left: 6px; font-size: .85em; }

/* ── Upload dialog ── */
body.mst-lock { overflow: hidden; }
.mst-modal {
    position: fixed; inset: 0; z-index: 2100;
    background: rgba(0, 0, 0, .78);
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
}
.mst-modal[hidden] { display: none; }
.mst-modal-card {
    position: relative;
    width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto;
    background: var(--secondary);
    border-radius: 10px;
    padding: 28px 28px 26px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .7);
}
.mst-close {
    position: absolute; top: 14px; right: 14px;
    width: 36px; height: 36px; border-radius: 36px; border: 0;
    background: var(--dark); color: var(--light);
}
.mst-close:hover { color: #fff; }
.mst-modal .form-label { color: #c9ccdb; font-size: 14px; }
.mst-modal textarea { resize: vertical; }

.mst-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.mst-drop {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 22px 16px;
    border: 2px dashed #3a3f52; border-radius: 10px;
    background: var(--dark);
    text-align: center; cursor: pointer;
    transition: border-color .15s, background .15s;
}
.mst-drop i { font-size: 28px; color: var(--primary); }
.mst-drop span { color: #fff; word-break: break-all; }
.mst-drop:hover, .mst-drop.drag { border-color: var(--primary); background: #0b0406; }
.mst-drop.has-file { border-style: solid; border-color: rgba(235, 22, 22, .6); }

.mst-error { margin: 14px 0 0; color: #ff8b8b; font-size: 14px; }

.mst-bar { height: 12px; border-radius: 12px; background: var(--dark); overflow: hidden; }
.mst-bar-fill {
    height: 100%; width: 0;
    background: linear-gradient(90deg, #ff6f5e, #f7a72f);
    box-shadow: 0 0 14px rgba(255, 130, 70, .6);
    transition: width .25s ease;
}

@media (max-width: 575.98px) {
    .mst-hero { padding: 22px 12px 32px; }
    .mst-upload-btn { padding: 15px 30px; font-size: 1rem; }
    .mst-modal-card { padding: 22px 18px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .mst-upload-btn, .mst-bar-fill { transition: none; }
}

/* price: hero line + box with the PayPal badge */
.mst-hero-price { margin: 44px 0 0; color: #8a86a0; font-size: 1.05rem; letter-spacing: .02em; }
.mst-hero-price b { color: #f3ece2; font-size: 1.25rem; }
.mst-price-box {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 18px;
    margin-bottom: 32px; padding: 14px 16px;
    border-radius: 8px; background: rgba(255, 255, 255, .04);
}
.mst-price-box > div { flex: 1 1 150px; }
.mst-price { font-family: var(--heading-font); font-size: 2rem; font-weight: 700; line-height: 1.1; color: #fff; }
.mst-price-box img { width: 120px; max-width: 100%; height: auto; border-radius: 6px; background: #fff; }
.mst-price small { font-size: .5em; font-weight: 400; color: #8a86a0; }
