/* Access screens (no token, locked subject, unlock states) in the existing KPC look. */
.kpc-gate{max-width:520px;margin:32px auto;padding:28px;border:2px solid #e5d9ed;border-radius:18px;background:#fff;color:#2b1838;font-family:Poppins,sans-serif}
.kpc-gate h1{font-size:26px;line-height:1.25;letter-spacing:-.8px;margin:0 0 10px}
.kpc-gate p{font-size:14px;line-height:1.7;color:#665074;margin:0 0 14px}
.kpc-gate .kpc-gate-note{color:#7b2cbf;font-weight:600}
.kpc-gate .kpc-gate-shop a{color:#7b2cbf;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.kpc-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;min-height:48px;border:0;border-bottom:5px solid #58218a;border-radius:14px;background:#7b2cbf;color:#fff;font:700 12px/1.3 Poppins,sans-serif;letter-spacing:.5px;text-transform:uppercase;text-decoration:none;cursor:pointer}
.kpc-button:disabled{opacity:.6;cursor:default}
.kpc-button:focus-visible,.kpc-code input:focus-visible{outline:3px solid #c9a6e6;outline-offset:2px}
.kpc-code{margin-top:22px;padding-top:18px;border-top:1px solid #eee4f4}
.kpc-code label{display:block;font-size:13px;font-weight:600;margin-bottom:8px;color:#2b1838}
.kpc-code-row{display:flex;gap:10px}
.kpc-code input{flex:1;min-width:0;min-height:48px;padding:0 14px;border:2px solid #e5d9ed;border-radius:12px;font:600 15px Poppins,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#2b1838}
.kpc-code-msg{min-height:1.7em;margin:8px 0 0!important;color:#a12a5e!important;font-size:13px!important}
.kpc-spinner{width:28px;height:28px;border:3px solid #eee4f4;border-top-color:#7b2cbf;border-radius:50%;animation:kpc-spin .9s linear infinite;margin-bottom:14px}
@keyframes kpc-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.kpc-spinner{animation:none}}
/* Locked tiles: full-opacity text in a muted colour (meets 4.5:1), greyed drawing, flat card. */
.subject-tile.locked{background:#faf8fb;border-color:#e8e2ec;border-bottom-color:#e8e2ec;cursor:default}
.subject-tile.locked:hover{transform:none;border-color:#e8e2ec}
.subject-tile.locked h2{color:#5f5469}
.subject-tile.locked .subject-info p{color:#6b6075}
.subject-tile.locked .subject-start{color:#6b6075;font-weight:600}
.subject-tile.locked .subject-art{background:#f1eef3}
.subject-tile.locked .subject-line{--tile-ink:#b9b0c0}
.subject-art.no-photo{background:#f3ecf8}
@media(max-width:550px){.kpc-gate{margin:16px 0;padding:20px}.kpc-gate h1{font-size:22px}.kpc-code-row{flex-direction:column}}

.kpc-level-row{display:flex;flex-wrap:wrap;gap:10px}
.kpc-level-row .kpc-button{flex:1 1 160px}

/* Dark mode: gate, code box, spinner and locked tiles. */
@media(prefers-color-scheme:dark){
.kpc-gate{background:#271b31;border-color:#3f2f4b;color:#eadff2}
.kpc-gate p{color:#b3a2c1}
.kpc-gate .kpc-gate-note,.kpc-gate .kpc-gate-shop a{color:#c99bf0}
.kpc-button{background:#8b45cc;border-bottom-color:#4e1d7a;color:#fff}
.kpc-button:focus-visible,.kpc-code input:focus-visible{outline-color:#dcbcf7}
.kpc-code{border-top-color:#3f2f4b}
.kpc-code label{color:#eadff2}
.kpc-code input{background:#2f2239;border-color:#53406a;color:#eadff2}
.kpc-code input::placeholder{color:#9a8aa6}
.kpc-code-msg{color:#f29bbd!important}
.kpc-spinner{border-color:#3f2f4b;border-top-color:#c99bf0}
.subject-tile.locked{background:#221a29;border-color:#33283c;border-bottom-color:#33283c}
.subject-tile.locked:hover{border-color:#33283c}
.subject-tile.locked h2{color:#c4b8ce}
.subject-tile.locked .subject-info p,.subject-tile.locked .subject-start{color:#a99bb5}
.subject-tile.locked .subject-art{background:#271f2e}
.subject-tile.locked .subject-line{--tile-ink:#5e5368}
.subject-art.no-photo{background:#2f2239}
}
