:root{
  --paper:#f7f4ee;
  --ink:#1c1a17;
  --ink-soft:#6b6358;
  --line:#e4ddd0;
  --card:#fffdf8;
  --accent:#b8542a;       /* terracotta */
  --accent-deep:#8f3f1f;
  --lock-bg:#fcf5e8;
  --lock-border:#e6cf9c;
  --lock-ink:#7a5a17;
  --shadow:0 10px 30px -12px rgba(40,30,20,.28);
  --radius:18px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Outfit',system-ui,sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(circle at 18% 12%, rgba(184,84,42,.05), transparent 40%),
                   radial-gradient(circle at 85% 8%, rgba(140,120,90,.06), transparent 45%);
}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}

/* Header */
.site-header{border-bottom:1px solid var(--line);background:rgba(247,244,238,.82);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:74px;}
.brand{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;letter-spacing:-.01em;color:var(--ink);text-decoration:none;}
.nav{display:flex;gap:26px;align-items:center;}
.menu-wrap{position:relative;}
.menu-btn{font-family:inherit;font-size:.96rem;font-weight:500;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 16px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;}
.menu-btn:hover{border-color:var(--accent);color:var(--accent);}
.menu-caret{font-size:.7rem;}
.menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:170px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;display:none;z-index:50;}
.menu-dropdown.open{display:block;}
.menu-dropdown a{display:block;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:.95rem;font-weight:500;}
.menu-dropdown a:hover{background:var(--paper);color:var(--accent);}
.menu-sep{height:1px;background:var(--line);margin:6px 4px;}
.menu-heading{display:block;padding:6px 12px 2px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:600;}

/* Hero / headings */
.page-head{text-align:center;padding:64px 0 40px;}
.page-head h1{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:-.02em;margin:0;}
.page-head p{color:var(--ink-soft);font-size:1.15rem;margin:14px 0 0;}

/* Filter bar */
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:40px;}
.filter-bar h2{font-family:'Fraunces',serif;font-weight:500;font-size:1.5rem;margin:0;}
select,input[type=text],input[type=password],input[type=file]{
  font-family:inherit;font-size:.98rem;color:var(--ink);background:var(--card);
  border:1px solid var(--line);border-radius:12px;padding:11px 14px;width:100%;
}
select:focus,input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(184,84,42,.12);}

/* Grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:34px;}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s;}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -14px rgba(40,30,20,.34);}
.media-frame{aspect-ratio:4/3;background:#100d0a;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.media-frame img,.media-frame video{width:100%;height:100%;object-fit:contain;}
.type-badge{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.6);color:#fff;font-size:.74rem;font-weight:500;padding:5px 10px;border-radius:8px;display:inline-flex;gap:6px;align-items:center;letter-spacing:.02em;text-transform:uppercase;}
.card-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:14px;}
.card-body h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.3rem;margin:0;letter-spacing:-.01em;}

/* Lock banner */
.lock-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--lock-bg);border:1px solid var(--lock-border);color:var(--lock-ink);padding:10px 14px;border-radius:12px;margin:14px 14px 0;}
.lock-banner .lock-label{display:flex;align-items:center;gap:8px;font-weight:500;font-size:.9rem;min-width:0;}
.lock-time{font-variant-numeric:tabular-nums;font-weight:600;}
.btn-extend{flex-shrink:0;background:#fff;border:1px solid var(--lock-border);color:var(--lock-ink);border-radius:9px;padding:6px 12px;font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;}
.btn-extend:hover{background:#fffaf0;}
.btn-extend:disabled{opacity:.6;cursor:default;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:600;font-size:.96rem;border-radius:12px;padding:12px 20px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .2s,transform .1s;}
.btn:active{transform:scale(.985);}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent-deep);}
.btn-outline{background:transparent;border-color:var(--line);color:var(--ink);}
.btn-outline:hover{border-color:var(--accent);color:var(--accent);}
.btn-delete{background:#a72b2b;color:#fff;width:100%;}
.btn-delete:hover{background:#8e2222;}
.btn-delete:disabled{background:#cdb7a6;cursor:default;}
.btn-block{width:100%;}

/* Forms / cards */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px;max-width:560px;margin:40px auto;}
.panel h1{font-family:'Fraunces',serif;font-weight:600;font-size:1.9rem;margin:0 0 6px;text-align:center;}
.panel .sub{color:var(--ink-soft);text-align:center;margin:0 0 26px;}
.field{margin-bottom:20px;}
.field label{display:block;font-weight:500;font-size:.9rem;margin-bottom:7px;}
.field .hint{color:var(--ink-soft);font-size:.84rem;margin-top:6px;}

/* Flash messages */
.flash{border-radius:12px;padding:13px 16px;margin-bottom:22px;font-size:.95rem;}
.flash-ok{background:#eaf3ea;border:1px solid #bcdcbc;color:#2f5d2f;}
.flash-err{background:#f7e7e7;border:1px solid #e0b4b4;color:#8e2222;}

/* Empty state */
.empty{text-align:center;padding:80px 20px;color:var(--ink-soft);border:1px dashed var(--line);border-radius:var(--radius);}
.empty h2{font-family:'Fraunces',serif;color:var(--ink);font-weight:500;margin:0 0 8px;}

/* Pagination */
.pager{display:flex;gap:20px;align-items:center;justify-content:center;margin:50px 0 20px;}
.pager span{color:var(--ink-soft);font-weight:500;}

/* Manage layout tweaks */
.manage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;}
.assign-row{display:flex;flex-direction:column;gap:6px;}
.assign-row label{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:600;}

.site-footer{border-top:1px solid var(--line);margin-top:80px;padding:30px 0;color:var(--ink-soft);font-size:.9rem;text-align:center;}

/* Landing page — banner / featured / CTA */
.home-banner{text-align:center;padding:80px 0 56px;}
.home-icon{font-size:2.6rem;display:inline-flex;background:rgba(184,84,42,.1);border-radius:18px;padding:14px 18px;margin-bottom:18px;}
.home-title{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(2.6rem,6vw,4rem);letter-spacing:-.02em;margin:0;}
.home-lead{color:var(--ink-soft);font-size:1.2rem;line-height:1.7;max-width:640px;margin:22px auto 0;}

.home-featured{max-width:820px;margin:0 auto;padding:30px 0 20px;}
.landing-image{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
.landing-image img{display:block;width:100%;height:auto;}
.home-featured-text{color:var(--ink-soft);font-size:1.05rem;line-height:1.75;max-width:640px;margin:32px auto 0;text-align:center;}

.home-cta{text-align:center;padding:64px 0 40px;margin-top:30px;border-top:1px solid var(--line);}
.home-cta h2{font-family:'Fraunces',serif;font-weight:600;font-size:2rem;margin:0 0 14px;}
.home-cta p{color:var(--ink-soft);max-width:480px;margin:0 auto 28px;line-height:1.7;}
.home-cta strong{color:var(--accent-deep);}
.landing-enter{font-size:1.1rem;padding:14px 34px;font-family:'Fraunces',serif;}

/* Age-verification popup */
.age-overlay{position:fixed;inset:0;background:rgba(20,14,10,.66);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100;padding:24px;}
.age-overlay.show{display:flex;}
.age-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 24px 60px -16px rgba(20,14,10,.5);max-width:440px;width:100%;padding:34px;text-align:center;}
.age-icon{font-size:1.5rem;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fcf5e8;color:var(--accent-deep);border:2px solid var(--lock-border);border-radius:999px;margin-bottom:16px;}
.age-box h2{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;margin:0 0 12px;}
.age-box p{color:var(--ink-soft);margin:0 0 26px;font-size:1.02rem;line-height:1.6;}
.age-actions{display:flex;flex-direction:column;gap:12px;}
.age-actions .btn,.age-actions form,.age-actions form .btn{width:100%;}

@media (max-width:560px){
  .header-inner{height:62px;}
  .nav{gap:16px;}
  .grid,.manage-grid{grid-template-columns:1fr;}
}
