body{font:14px/1.4 system-ui,sans-serif;margin:0;padding:16px;background:#111;color:#ddd}
a{color:#8bd}
.topnav{margin-bottom:12px}
.topnav a{margin-right:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.card{display:block;text-decoration:none;color:#ddd;background:#1b1b1b;border-radius:6px;overflow:hidden}
.card img,.card .thumb{display:block;width:320px;height:180px;max-width:100%}
.name{padding:6px 8px 0;font-weight:600}
.duration,.published{padding:0 8px;color:#999}
.cats{margin-bottom:12px}
.cats .cat{color:#8bd;text-decoration:none;margin-right:10px}
.cats .cat.active{color:#fff;text-decoration:underline}
.player iframe{max-width:100%;height:auto;aspect-ratio:16/9;border:0}
.video-meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:16px 0}
.video-meta dt{color:#999}
.video-meta dd{margin:0}
.model-header h1{margin:0 0 4px}
.model-header .count{color:#999;margin:0 0 16px}
.search input[type=search]{padding:6px;width:320px;max-width:100%}
.search button,.dmca button{padding:6px 14px}
.search{position:relative}
#suggest-list{list-style:none;margin:2px 0 0;padding:0;position:absolute;z-index:50;width:320px;max-width:100%;background:#1b1b1b;border:1px solid #333;border-radius:4px}
#suggest-list li a{display:block;padding:6px 10px;color:#ddd;text-decoration:none}
#suggest-list li a:hover,#suggest-list li a:focus{background:#2a2a2a;color:#fff;outline:none}
.dmca{max-width:640px}
.dmca fieldset{margin:0 0 16px;border:1px solid #333}
.dmca label{display:block;margin:0 0 10px}
.dmca input[type=text],.dmca input[type=email],.dmca input[type=tel],.dmca input[type=date],.dmca textarea{display:block;width:100%;padding:6px;box-sizing:border-box;background:#222;color:#ddd;border:1px solid #444}
.dmca label.check{display:flex;gap:8px;align-items:flex-start}
.dmca select{display:block;width:100%;padding:6px;box-sizing:border-box;background:#222;color:#ddd;border:1px solid #444}
.dmca-intro{max-width:640px;color:#aaa}
.dmca-fields[hidden]{display:none}
.dmca label.has-error input[type=text],.dmca label.has-error input[type=email],.dmca label.has-error input[type=tel],.dmca label.has-error input[type=date],.dmca label.has-error textarea,.dmca label.has-error select{border-color:#c33;background:#2a1a1a}
.dmca .err-msg{display:block;color:#f77;margin:-6px 0 10px;font-size:13px}
.dmca label.check.has-error{color:#f77}
.flash.error{background:#432;color:#fbb}
.flash{padding:8px;background:#234;border-radius:4px}
.admin{max-width:520px}
.admin input[type=password]{display:block;width:100%;padding:6px;box-sizing:border-box;background:#222;color:#ddd;border:1px solid #444}
.admin label{display:block;margin:0 0 10px}
.admin button{padding:6px 14px}
.admin-sections{list-style:none;padding:0}
.admin-sections li{margin:0 0 8px}
.admin .stub{color:#777;font-size:12px}
.thumb-placeholder{width:320px;height:180px;background:#ccc;display:flex;align-items:center;justify-content:center;color:#666;font:14px/1 sans-serif}
.log{font-family:ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap}

/* age gate */
/* Age gate (18+) overlay: plain dark scrim, no blur. */
.age-gate {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(0, 0, 0, 0.82);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.age-gate[hidden] {
    display: none;
}

.age-gate .age-box {
    width: 100%;
    max-width: 420px;
    padding: 24px;
    border: 1px solid #333;
    border-radius: 8px;
    background: #1b1b1b;
    color: #ddd;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.6);
    text-align: center;
}

.age-gate h2 {
    margin: 0 0 12px;
    font-size: 34px;
    letter-spacing: 1px;
}

.age-gate .age-en {
    margin: 0 0 10px;
    line-height: 1.45;
    color: #ccc;
}

.age-gate .age-check {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    justify-content: center;
    margin: 16px 0;
    cursor: pointer;
}

.age-gate .age-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
}

.age-gate button,
.age-gate .age-cancel {
    padding: 8px 22px;
    border-radius: 4px;
    font: inherit;
    text-decoration: none;
}

.age-gate button {
    border: 0;
    background: #3d7fc1;
    color: #fff;
    cursor: pointer;
}

.age-gate button:disabled {
    background: #444;
    color: #888;
    cursor: not-allowed;
}

.age-gate .age-cancel {
    border: 1px solid #555;
    color: #ddd;
}

.age-gate .age-cancel:hover {
    background: #2a2a2a;
}

