.pf-page { max-width:1100px; margin:0 auto; padding:calc(var(--ticker-h, 42px) + 120px) 40px 80px; }
.pf-acc-head { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; flex-wrap:wrap; margin-bottom:18px; }
.pf-acc-head h1 { font-size:clamp(64px, 10vw, 120px); }
.pf-who-line { display:flex; gap:14px; align-items:center; margin-left:auto; }
.pf-who-line .pf-avatar { width:56px; height:56px; font-size:28px; cursor:pointer; }
.pf-photo-acts { display:flex; flex-wrap:wrap; gap:14px; margin-top:8px; }
.pf-photo-acts button { padding:0; border:0; border-bottom:1px solid transparent; background:none; color:#888; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.pf-photo-acts button:hover, .pf-photo-acts button:focus-visible { color:var(--white); border-bottom-color:var(--red); outline:none; }
.pf-id { min-width:0; }
.pf-id .pf-id-name { display:block; font-family:'DM Serif Display',serif; font-weight:400; font-size:22px; line-height:1.15; overflow-wrap:anywhere; }
.pf-id-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:6px; }
.pf-id-row .handle { margin:0; }
.pf-email { margin:0; font-size:13px; line-height:1.4; color:#888; overflow-wrap:anywhere; }
.pf-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 32px; }
.pf-tabs button { min-height:40px; padding:0 16px; border-radius:999px; border:1px solid rgba(240,236,228,.28); background:transparent; color:var(--white); font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.pf-tabs button.on { background:var(--red); border-color:var(--red); }
.pf-posters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.pf-poster { position:relative; }
.pf-poster img { width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:6px; }
.pf-cap { display:block; padding-top:8px; }
.pf-cap b { display:block; font-family:'DM Serif Display',serif; font-weight:400; font-size:18px; }
.pf-rm { position:absolute; top:8px; right:8px; width:28px; height:28px; border:0; border-radius:50%; background:rgba(0,0,0,.7); color:var(--white); cursor:pointer; }
.pf-read { list-style:none; margin:0; padding:0; }
.pf-read li { padding:14px 0; border-top:1px solid #1a1a1a; }
.pf-read span { display:block; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:#888; }
.pf-prog { margin:0; font-family:'Bebas Neue',sans-serif; font-size:72px; line-height:.9; }
.pf-prog small { font-size:32px; color:#888; }
.pf-rate-row { display:grid; grid-template-columns:72px 1fr; gap:12px; align-items:center; padding:12px 0; border-top:1px solid #1a1a1a; }
.pf-rate-row img { width:72px; height:96px; object-fit:cover; }
.pf-rate-row .dim { opacity:.3; }
.pf-set { padding:22px 0; border-top:1px solid #1a1a1a; }
.pf-set h2 { margin:0 0 8px; font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:32px; }
.pf-legal { max-width:720px; }
.pf-legal h1 { margin:0 0 12px; font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(56px, 8vw, 96px); line-height:.9; }
.pf-legal h2 { margin:28px 0 8px; font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:32px; }
.pf-legal p, .pf-legal li { font-size:15px; line-height:1.7; color:rgba(240,236,228,.86); }
.pf-legal a { color:var(--white); border-bottom:1px solid var(--red); }
@media (max-width:800px){
  .pf-page { padding:calc(var(--ticker-h, 42px) + 96px) 16px 64px; }
  .pf-posters { grid-template-columns:1fr 1fr; }
  .pf-acc-head { align-items:flex-start; }
  .pf-who-line { margin-left:0; }
}

/* Public profile and the edit form. Four posters stay four across. */
.pf-public, .pf-profile { overflow-x:clip; }
.pf-public h1, .pf-name {
  margin:0;
  font-family:'Bebas Neue',sans-serif;
  font-weight:400;
  font-size:clamp(42px, 11vw, 88px);
  line-height:.9;
  overflow-wrap:anywhere;
}
.pf-name b, .pf-public h1 b { color:var(--red); font-weight:400; }
.pf-public h2, .pf-profile h2 {
  margin:0 0 16px;
  font-family:'Bebas Neue',sans-serif;
  font-weight:400;
  font-size:clamp(28px, 4.6vw, 48px);
  line-height:.9;
}
.who { display:flex; gap:22px; align-items:center; margin:8px 0 36px; min-width:0; }
.who > div { min-width:0; }
.who .pf-avatar { width:88px; height:88px; font-size:40px; cursor:default; }
.who .bio { margin:8px 0 0; max-width:36ch; font-family:'DM Serif Display',serif; font-style:italic; font-size:clamp(16px, 1.7vw, 22px); line-height:1.45; color:var(--cream, #e8e2d6); overflow-wrap:anywhere; }
.handle { margin:6px 0 0; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:#888; overflow-wrap:anywhere; }
.who .pf-pill { margin-top:14px; }
.pf-block { margin-top:48px; }
#pf-tab-friends h2 { margin:0 0 10px; font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(28px, 4.6vw, 48px); line-height:.9; }
#pfFriends { margin:0; }
.pf-suggest { margin-top:64px; }
.pf-suggest .sug-label { margin:48px 0 12px; }
.pf-suggest .sug-first { margin-top:20px; }
#pf-tab-friends .pf-empty { margin:4px 0 0; max-width:42ch; }
.top4 { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.top4 .slot, .top4 a.slot {
  position:relative;
  display:block;
  aspect-ratio:2/3;
  overflow:hidden;
  border-radius:2px;
  background:#141414;
  min-width:0;
}
.top4 img, .lb img { filter:grayscale(1) contrast(1.08); transition:filter .5s; }
.top4 img { width:100%; height:100%; object-fit:cover; }
@media (hover:hover) and (pointer:fine) {
  .top4 a.slot:hover img, .top4 a.slot:focus-visible img,
  .top4 .pick:hover img, .top4 .pick:focus-within img,
  .lb a:hover img, .lb a:focus-visible img { filter:none; }
}
@media (hover:none), (max-width:800px) {
  .top4 img, .lb img { filter:none; }
}
.top4 .slot.empty {
  display:grid;
  place-items:center;
  border:1px dashed rgba(240,236,228,.35);
  color:#888;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.top4 .ord {
  position:absolute; z-index:1; top:8px; left:8px;
  width:22px; height:22px; display:grid; place-items:center;
  border-radius:50%; background:rgba(10,10,10,.78); font-size:11px; color:#f0ece4;
}
.pick { min-width:0; }
.slot-acts { display:flex; gap:2px; margin-top:4px; }
.slot-acts button {
  flex:1; min-width:0; height:28px; padding:0;
  border:1px solid #2a2a2a; border-radius:4px; background:transparent; color:#f0ece4;
  font-size:14px; line-height:1; cursor:pointer;
}
.slot-acts button:disabled { opacity:.35; cursor:default; }
.slot-acts button:focus-visible { outline:2px solid var(--red); outline-offset:1px; }
.pf-results { max-width:480px; margin:0 0 16px; border:1px solid #1a1a1a; }
.pf-results button {
  display:flex; justify-content:space-between; gap:12px; width:100%;
  padding:10px 14px; border:0; border-top:1px solid #1a1a1a; background:transparent;
  color:#f0ece4; font:inherit; font-size:14px; text-align:left; cursor:pointer;
}
.pf-results button:first-child { border-top:0; }
.pf-results button:hover, .pf-results button:focus-visible { color:var(--red); outline:none; }
.pf-results i { font-style:normal; color:#888; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.pf-profile .pf-note, .pf-set .pf-note, .pf-set > p { max-width:62ch; margin:0 0 12px; }
.pf-profile h2, .pf-set h2 { margin:0 0 8px; }
.pf-set, .pf-profile { max-width:640px; }
.pf-set form, #pfDeleteForm, .pf-set .pf-field, .pf-profile .pf-line { max-width:480px; }
#pfProfileSave { margin-top:4px; }
.pf-line {
  display:flex; align-items:center; width:100%; height:48px; margin:0 0 12px;
  padding:0 14px; border:1px solid #2a2a2a; border-radius:4px; background:transparent;
}
.pf-line input, .pf-line textarea {
  flex:1; min-width:0; width:100%; height:24px; margin:0; padding:0; outline:none;
  appearance:none; -webkit-appearance:none;
  background:transparent; border:0; border-radius:0; box-shadow:none;
  color:#f2ede4; font:inherit; font-size:14px; line-height:1.3;
}
.pf-set .pf-field { display:block; width:100%; margin:0 0 10px; }
.pf-line.bio {
  align-items:flex-start; height:auto; min-height:96px; border-radius:4px; padding:12px 14px;
}
.pf-line textarea { height:auto; min-height:72px; resize:vertical; line-height:1.45; }
.pf-line span.at { margin-right:8px; color:#888; font-size:14px; }
.pf-line input:focus, .pf-line textarea:focus { outline:none; }
.pf-line:focus-within { border-color:rgba(240,236,228,.55); }
.pf-line input::placeholder, .pf-line textarea::placeholder { color:rgba(240,236,228,.4); }
.toggle { display:flex; gap:12px; align-items:flex-start; max-width:62ch; margin:8px 0 14px; cursor:pointer; }
.toggle input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.switch { position:relative; flex:none; width:44px; height:26px; margin-top:2px; border:1px solid rgba(240,236,228,.35); border-radius:999px; }
.switch i { position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#888; transition:transform .15s ease, background .15s ease; }
.toggle input:checked + .switch { border-color:var(--red); }
.toggle input:checked + .switch i { transform:translateX(18px); background:var(--red); }
.toggle input:focus-visible + .switch { outline:2px solid var(--red); outline-offset:2px; }
.rate { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px 0; border-top:1px solid #1a1a1a; min-width:0; color:inherit; text-decoration:none; }
.rate img { width:48px; height:68px; object-fit:cover; filter:grayscale(1); }
.rate b { display:block; font-family:'DM Serif Display',serif; font-weight:400; font-size:22px; overflow-wrap:anywhere; }
.stars { color:var(--red); letter-spacing:.08em; }
.stars i { color:#3a3a3a; font-style:normal; }
.badges { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.ticket { display:grid; grid-template-columns:minmax(0,1fr) 64px; min-height:108px; min-width:0; background:#f3efe6; color:#14120f; }
.ticket .main { min-width:0; padding:12px 10px 12px 12px; }
.ticket .lbl { font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--red); }
.ticket strong { display:block; margin-top:6px; font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:26px; line-height:.9; overflow-wrap:anywhere; }
.ticket .stub { display:flex; flex-direction:column; align-items:center; justify-content:center; border-left:2px dashed rgba(20,18,15,.28); padding:8px 4px; text-align:center; }
.ticket .stub span { font-family:'Space Mono',monospace; font-size:8px; letter-spacing:.14em; text-transform:uppercase; color:#6d675f; }
.ticket .stub b { font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:26px; line-height:.9; }
.ticket.locked { opacity:.42; }
.lb { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.lb article, .lb a { min-width:0; border:1px solid #1a1a1a; background:#101010; color:inherit; text-decoration:none; display:block; }
.poster-type, .lb img {
  aspect-ratio:2/3; width:100%; object-fit:cover;
  display:flex; align-items:flex-end; padding:8px;
  background:linear-gradient(160deg, #2a211c, #0e0e0e 55%, #1a120f);
  font-family:'Bebas Neue',sans-serif; font-size:22px; line-height:.9;
}
.lb .meta { padding:8px; }
.lb .meta b { display:block; overflow:hidden; font-family:'DM Serif Display',serif; font-weight:400; font-size:16px; white-space:nowrap; text-overflow:ellipsis; }
.pf-alert { display:flex; gap:14px; align-items:center; padding:14px 0; border-top:1px solid #1a1a1a; min-width:0; }
.pf-alert img { width:42px; height:60px; object-fit:cover; filter:grayscale(1); flex:none; }
.pf-alert b { font-family:'DM Serif Display',serif; font-weight:400; font-size:20px; }
.pf-soon { margin:0 0 12px; }
.pf-tmdb { margin:10px 0 0; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.pf-tmdb a { color:#888; text-decoration:none; border-bottom:1px solid transparent; }
.pf-tmdb a:hover, .pf-tmdb a:focus-visible { color:#f0ece4; border-bottom-color:var(--red); outline:none; }
@media (max-width:800px) {
  .who { align-items:flex-start; gap:14px; }
  .who .pf-avatar { width:72px; height:72px; }
  .top4, .lb { gap:6px; }
  .top4 .ord { width:16px; height:16px; top:4px; left:4px; font-size:9px; }
  .top4 .slot-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  .top4 .slot.empty::before { content:"+"; font-family:'Bebas Neue',sans-serif; font-size:28px; line-height:1; color:rgba(240,236,228,.7); }
  .ticket { grid-template-columns:minmax(0, 1fr) 52px; }
  .ticket strong { font-size:20px; }
  .ticket .stub b { font-size:22px; }
  .poster-type { font-size:14px; padding:6px; }
  .lb .meta { padding:6px 4px 8px; }
  .lb .meta b { font-size:12px; }
  .lb .stars { font-size:11px; }
  .rate b { font-size:18px; }
}
@media (prefers-reduced-motion:reduce) {
  .top4 img, .lb img, .switch i { transition:none; }
}
#pfMembers h1 { margin:0 0 12px; font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(56px, 8vw, 96px); line-height:.9; }
#pfMembers h1 b { color:var(--red); font-weight:400; }
.mem-stats { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; margin:0 0 28px; }
.mem-stat { min-width:0; padding:14px 14px 12px; border:1px solid #1a1a1a; background:#101010; }
.mem-stat b { display:block; font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(36px, 5vw, 56px); line-height:.9; }
.mem-stat span { display:block; margin-top:6px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#888; }
.mem-tools { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 0 18px; }
.mem-tools .field { display:flex; align-items:center; flex:1 1 220px; max-width:none; height:46px; margin:0; padding:0 18px; border:1px solid rgba(240,236,228,.28); border-radius:999px; }
.mem-tools .field input { flex:1; min-width:0; border:0; background:transparent; color:var(--white); font:inherit; font-size:13px; outline:none; }
.mem-scroll { width:100%; overflow-x:auto; }
.mem-table { width:100%; border-collapse:collapse; font-size:13px; }
.mem-table th, .mem-table td { padding:12px 10px; border-bottom:1px solid #1a1a1a; text-align:left; vertical-align:middle; }
.mem-table th { font-family:'Space Mono',monospace; font-size:10px; font-weight:400; letter-spacing:.14em; text-transform:uppercase; color:#888; white-space:nowrap; }
.mem-table th button { padding:0; border:0; background:none; color:inherit; font:inherit; letter-spacing:inherit; text-transform:inherit; cursor:pointer; }
.mem-mail { font-family:'Space Mono',monospace; font-size:12px; overflow-wrap:anywhere; }
.mem-badges { font-size:12px; color:#e8e2d6; }
.mem-actions { display:grid; gap:10px; margin-top:4px; padding:14px; border:1px solid #1a1a1a; background:#101010; }
.mem-actions label { display:grid; gap:6px; min-width:0; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#888; }
.mem-actions select, .mem-actions input { width:100%; min-width:0; height:42px; padding:0 12px; border:1px solid rgba(240,236,228,.28); border-radius:999px; background:transparent; color:var(--white); font-family:'Space Mono',monospace; font-size:13px; letter-spacing:0; text-transform:none; }
.mem-actions .mem-row { display:flex; flex-wrap:wrap; gap:8px; }
.mem-panel[hidden] { display:none !important; }
.mem-note { margin:8px 0 0; }
@media (min-width:800px) {
  .mem-actions { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .mem-actions .mem-wide { grid-column:1 / -1; }
}
@media (max-width:900px) {
  .mem-stats { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
#pfNeed { z-index:260; }
#pfNeed .pf-modal h2 { font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:clamp(48px, 10vw, 72px); line-height:.9; margin:0 0 12px; }
#pfNeed .pf-modal h2 span { color:var(--red); }

.mem-actions .mem-check { display:flex; align-items:center; gap:8px; text-transform:none; letter-spacing:normal; cursor:pointer; }
.mem-actions .mem-check input { width:18px; height:18px; accent-color:#c8341a; margin:0; }
.mem-actions .mem-given { border:1px solid #2a2a2a; border-radius:4px; padding:12px 14px; margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; }
.mem-actions .mem-given legend { padding:0 6px; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:#8a8580; }
.mem-actions .mem-given select { min-width:200px; }
.mem-sync { min-height:1.2em; }
.mem-comments { margin-top:56px; }
.mem-comments h2 { font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:48px; margin:4px 0 8px; }
.mem-comment { border:1px solid #23201d; border-radius:6px; padding:14px 16px; margin:10px 0; background:#0f0e0d; }
.mem-comment.flagged { border-color:#c8341a; }
.mem-comment header { font-family:'Space Mono',monospace; font-size:12px; color:#8a8580; display:flex; flex-wrap:wrap; gap:4px 8px; align-items:center; }
.mem-comment header b { color:#f2ede4; }
.mem-comment header a { color:#f2ede4; }
.mem-comment > p { margin:8px 0; font-family:'DM Serif Display',Georgia,serif; font-size:17px; color:#e8e2d6; }
.mem-flag { background:#c8341a; color:#f2ede4; border-radius:999px; padding:1px 8px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.mem-state { border:1px solid #3a3632; border-radius:999px; padding:1px 8px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.mem-comment .mem-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.mem-comment > p.pf-note { font-family:'Space Mono',monospace; font-size:12px; color:#c8341a; }
#pfNeed .pf-field { display:block; margin:0 0 12px; }
#pfNeed .pf-field[hidden] { display:none; }
.pf-need-lbl { display:block; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:#8a8580; margin:0 0 6px; }
.mem-error details { margin:6px 0 0; }
.mem-error summary { cursor:pointer; font-family:'Space Mono',monospace; font-size:11px; color:#8a8580; }
.mem-error pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:11px; color:#b8b2a8; background:#0a0908; padding:10px; border-radius:4px; margin:6px 0 0; }
.mem-error > p:first-of-type { font-family:'Space Mono',monospace; font-size:13px; }
