/* RentBoy gallery: ordinary, accessible HTML with native scrolling. */
*, *::before, *::after { box-sizing:border-box; }
body { margin:0; }
button, input, select, textarea { font:inherit; }
button { cursor:pointer; }
button, input, textarea, select { max-width:100%; }
h1,h2,h3,h4,p,figure { margin:0; }
a { color:inherit; text-decoration:none; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border-radius:999px; padding:.8rem 1.1rem; line-height:1.2; font-size:14px; }
.input,.textarea,.select { width:100%; padding:.85rem 1rem; }
.textarea { min-height:120px; resize:vertical; }
.label { display:block; margin-bottom:7px; }
.pill { padding:.5rem .8rem; border-radius:99px; cursor:pointer; }
.section { margin:0 auto; }
.card { overflow:hidden; }
.image-cover { display:block; width:100%; height:100%; object-fit:cover; }
.tiny { font-size:12px; line-height:1.6; }
.nav-link { display:inline-block; padding:8px 0; }
.drawer { transform:translateX(105%); transition:transform .3s; }
.drawer.open { transform:translateX(0); }
.profile-upload-preview { display:grid; gap:12px; margin-top:12px; }
.masonry { columns:3; column-gap:20px; }
.masonry > article { break-inside:avoid; margin-bottom:20px; }
.admin-photo-strip { display:flex; gap:10px; overflow-x:auto; }
.admin-photo-strip img { width:120px; height:140px; object-fit:cover; border-radius:10px; }
.status-badge { display:inline-block; border:1px solid #fff3; border-radius:50px; padding:4px 10px; font-size:11px; }
.status-approved { color:#9cdfac; }.status-hidden,.status-rejected { color:#f5a4a4; }
#mobile-menu { position:absolute; right:5vw; top:75px; padding:20px; }
.rentboy-menu-panel,.rentboy-menu-actions { display:grid; gap:8px; }
.rentboy-menu-actions { border-top:1px solid #fff2; padding-top:15px; }
#rentboy-vip-modal { display:none; position:fixed; inset:0; z-index:180; background:#000b; backdrop-filter:blur(12px); padding:20px; align-items:center; justify-content:center; }
#rentboy-vip-modal.open { display:flex; }
#rentboy-vip-modal .vip-card { width:min(800px,100%); max-height:90svh; overflow:auto; background:#141414; border:1px solid #fff3; border-radius:20px; padding:30px; }
.rentboy-vip-lock-panel { border:1px solid #fff2; border-radius:10px; padding:12px; }
.rentboy-vip-badge { color:#ddd; border:1px solid #fff3; border-radius:50px; display:inline-block; padding:5px 10px; font-size:11px; }
@media(max-width:850px) { .masonry { columns:2; } }
@media(max-width:550px) { .masonry { columns:1; } }
:root { --gallery-bg:#0A0B0D; --gallery-text:#f3f2ee; --gallery-accent:#6675FF; --gallery-muted:#9b9b98; --gallery-line:#ffffff24; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body.rb-gallery-site { background:var(--gallery-bg)!important; color:var(--gallery-text)!important; font-family:Arial,Helvetica,system-ui,sans-serif!important; -webkit-font-smoothing:antialiased; }
body.rb-gallery-site::before, body.rb-gallery-site::after { display:none!important; }
.rb-gallery-site [hidden], .rb-gallery-site .hidden { display:none!important; }
.rb-gallery-site *:focus-visible { outline:2px solid var(--gallery-accent)!important; outline-offset:5px; }
.rb-gallery-site button, .rb-gallery-site input, .rb-gallery-site select, .rb-gallery-site textarea { font-family:inherit!important; }
.rb-gallery-site button:disabled { opacity:.4; cursor:not-allowed; }
body.rb-gallery-site h1, body.rb-gallery-site h2, body.rb-gallery-site h3, body.rb-gallery-site .display { font-family:Arial,Helvetica,system-ui,sans-serif!important; letter-spacing:-.055em!important; font-weight:400!important; color:inherit!important; text-shadow:none!important; }
body.rb-gallery-site .btn { border:1px solid var(--gallery-line)!important; background:transparent!important; color:var(--gallery-text)!important; font-weight:400!important; box-shadow:none!important; text-shadow:none!important; transition:background .2s,color .2s; }
body.rb-gallery-site .btn:hover { background:#ffffff12!important; transform:none!important; }
body.rb-gallery-site .btn-primary { background:var(--gallery-accent)!important; border-color:var(--gallery-accent)!important; color:var(--gallery-bg)!important; }
body.rb-gallery-site .btn-primary:hover { filter:brightness(.85); }
body.rb-gallery-site .btn-danger { border-color:#ec898944!important; color:#fba0a0!important; }
body.rb-gallery-site .pill { background:transparent!important; color:var(--gallery-muted)!important; border:1px solid var(--gallery-line)!important; font-weight:400!important; }
body.rb-gallery-site .pill.active { color:var(--gallery-bg)!important; background:var(--gallery-accent)!important; }
body.rb-gallery-site .kicker, body.rb-gallery-site .label { color:var(--gallery-muted)!important; font-weight:400!important; letter-spacing:.09em; font-size:11px; }
body.rb-gallery-site .muted, body.rb-gallery-site .tiny { color:var(--gallery-muted)!important; }
body.rb-gallery-site .text-amber-300, body.rb-gallery-site .text-amber-200 { color:var(--gallery-text)!important; }
body.rb-gallery-site .input, body.rb-gallery-site .textarea, body.rb-gallery-site .select { background:#ffffff06!important; border:1px solid var(--gallery-line)!important; border-radius:10px!important; color:var(--gallery-text)!important; font-size:16px; }
body.rb-gallery-site option { background:#161616; color:#fff; }
body.rb-gallery-site .card, body.rb-gallery-site .glass { background:transparent!important; border:1px solid var(--gallery-line)!important; border-radius:14px!important; box-shadow:none!important; backdrop-filter:none!important; }
body.rb-gallery-site .card:hover { transform:none!important; border-color:#ffffff55!important; }
body.rb-gallery-site .section { max-width:1400px; padding:90px 5vw; border-top:1px solid var(--gallery-line); }
body.rb-gallery-site .section h2.display { font-size:clamp(32px,4.8vw,64px)!important; line-height:1.04!important; }
body.rb-gallery-site > nav { background:var(--gallery-bg)!important; border:0!important; box-shadow:none!important; backdrop-filter:none!important; z-index:50!important; }
.rb-gallery-site #auth-modal { z-index:140; }
.rb-gallery-site #inquiry-modal, .rb-gallery-site #inbox-modal { z-index:130; }
.rb-gallery-site #toast-root > div { z-index:5000; }
.rb-gallery-site #profile-drawer { z-index:110; }
body.rb-gallery-site > nav .mx-auto { max-width:none!important; padding:24px 5vw!important; gap:20px!important; }
body.rb-gallery-site > nav .brand-wordmark { font:500 13px/1 Arial,sans-serif!important; letter-spacing:.06em!important; color:var(--gallery-text)!important; -webkit-text-stroke:0!important; text-shadow:none!important; max-width:none!important; }
body.rb-gallery-site #mobile-menu-btn { display:flex!important; border:0!important; background:transparent!important; box-shadow:none!important; border-radius:0!important; padding:12px 0 12px 22px!important; font-size:12px; gap:10px; text-transform:uppercase; }
.rb-gallery-site .rb-nav-text, .rb-gallery-site .rb-view-switch button, .rb-gallery-site .rb-gallery-pagination button { background:none!important; border:0!important; color:inherit!important; font:400 12px/1.4 Arial,sans-serif!important; text-decoration:none; cursor:pointer; }
.rb-gallery-site .rb-nav-text { text-transform:uppercase; letter-spacing:.03em; }
body.rb-gallery-site #mobile-menu { top:75px!important; right:5vw!important; width:min(400px,90vw)!important; max-height:calc(100svh - 95px); overflow-y:auto; background:#151515!important; border:1px solid var(--gallery-line)!important; border-radius:14px!important; box-shadow:0 30px 80px #0008!important; }
body.rb-gallery-site #mobile-menu .nav-link { color:var(--gallery-text)!important; font-size:15px!important; }
body.rb-gallery-site #mobile-menu .nav-link:hover { background:#ffffff0d!important; }
body.rb-gallery-site #compare-btn { display:inline-flex!important; }
body.rb-gallery-site #featured-gallery { display:flex; flex-direction:column; justify-content:center; min-height:100svh; padding:130px 0 45px; border:0; position:relative; gap:35px; overflow:hidden; }
.rb-gallery-intro { padding:0 5vw; display:grid; grid-template-columns:1fr auto; gap:12px 40px; align-items:end; }
.rb-gallery-intro .rb-eyebrow { grid-column:1/-1; text-transform:uppercase; letter-spacing:.08em; font:10px/1.4 Arial,sans-serif; color:var(--gallery-muted); }
body.rb-gallery-site #gallery-heading { margin:0; font:400 clamp(30px,3.6vw,54px)/1.08 Arial,sans-serif!important; letter-spacing:-.055em!important; max-width:820px; }
#gallery-intro { font-size:12px; line-height:1.6; color:var(--gallery-muted); max-width:240px; }
.rb-featured-track { display:flex; gap:16px; width:100%; overflow-x:auto; overflow-y:hidden; padding:8px 5vw 15px; scroll-padding:5vw; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; cursor:grab; touch-action:pan-x pan-y; }
.rb-featured-track::-webkit-scrollbar { display:none; }
.rb-featured-track.rb-dragging { scroll-snap-type:none; cursor:grabbing; user-select:none; }
.rb-featured-card { flex:0 0 clamp(280px,38vw,580px); min-width:0; scroll-snap-align:center; position:relative; margin:0; }
.rb-featured-photo { display:block; width:100%; height:clamp(270px,43svh,600px); overflow:hidden; border-radius:18px; background:#1b1b1b; border:0; padding:0; cursor:pointer; position:relative; }
.rb-featured-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 28%; transition:transform .7s cubic-bezier(.22,1,.36,1); pointer-events:none; }
.rb-featured-photo:hover img { transform:scale(1.035); }
.rb-photo-arrow { position:absolute; bottom:16px; right:16px; display:grid; place-items:center; border-radius:50%; background:#f3f2ee; color:#111; width:34px; height:34px; font:18px Arial,sans-serif; }
.rb-featured-caption { display:flex; align-items:start; justify-content:space-between; gap:16px; padding:15px 2px 0; }
.rb-featured-caption button { border:0; background:none!important; color:var(--gallery-text)!important; padding:0; font-size:20px; letter-spacing:-.04em; cursor:pointer; text-align:left; }
.rb-featured-caption p { margin:4px 0 0; color:var(--gallery-muted); font:11px/1.5 Arial,sans-serif; }
.rb-featured-caption .rb-card-number { font:10px/1.5 Arial,sans-serif; color:var(--gallery-muted); padding-top:5px; }
.rb-gallery-controls { display:flex; align-items:center; justify-content:space-between; padding:0 5vw; gap:24px; }
.rb-view-switch { display:flex; align-items:center; gap:9px; font-size:11px; text-transform:uppercase; }
.rb-gallery-site .rb-view-switch button { text-transform:uppercase; padding:10px 0; opacity:.45; }
.rb-gallery-site .rb-view-switch button[aria-pressed="true"] { opacity:1; }
.rb-gallery-pagination { display:flex; gap:20px; align-items:center; font:11px/1 Arial,sans-serif; color:var(--gallery-muted); }
.rb-gallery-site .rb-gallery-pagination button { font-size:22px!important; padding:8px; min-width:40px; }
.rb-explore-link { align-self:center; font:10px/1.4 Arial,sans-serif; text-transform:uppercase; letter-spacing:.1em; color:var(--gallery-muted)!important; display:flex; gap:14px; padding:12px; }
.rb-full-index { min-height:clamp(325px,49svh,660px); max-width:1000px; margin:auto; padding:30px 5vw; display:flex; flex-wrap:wrap; align-content:center; justify-content:center; gap:14px 22px; }
.rb-gallery-site .rb-full-index button { border:0; background:none!important; color:var(--gallery-text)!important; padding:4px 0; font:400 clamp(23px,2.4vw,36px)/1.2 Arial,sans-serif!important; letter-spacing:-.055em; cursor:pointer; transition:opacity .2s; }
.rb-full-index button:hover { opacity:.55; }
.rb-full-index span { font-size:9px; align-self:center; color:var(--gallery-muted); }
body.rb-gallery-site #hero.hero-strip { max-width:90vw!important; width:90vw!important; height:auto!important; min-height:0!important; margin:10px auto 70px!important; padding:0!important; border-radius:16px; overflow:hidden; }
body.rb-gallery-site #hero.hero-strip img { width:100%!important; max-height:250px!important; object-fit:cover!important; opacity:.65; }
body.rb-gallery-site #hero::before, body.rb-gallery-site #hero::after { display:none!important; }
body.rb-gallery-site #intro .display { font-size:clamp(38px,5.5vw,80px)!important; }
body.rb-gallery-site #intro > div { max-width:880px; }
body.rb-gallery-site #intro .glass { border:0!important; border-top:1px solid var(--gallery-line)!important; border-radius:0!important; padding-left:0; }
body.rb-gallery-site #profile-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px 20px; }
body.rb-gallery-site #profile-grid > .card { border:0!important; }
body.rb-gallery-site #profile-grid > .card > .relative { height:380px; border-radius:14px; }
body.rb-gallery-site #profile-grid > .card > .p-5 { padding:18px 0; }
body.rb-gallery-site #profile-grid h3 { font-size:23px; }
body.rb-gallery-site #profile-grid .text-right { min-width:85px; }
.rb-gallery-site .modal-bg { background:#0009; backdrop-filter:blur(10px); }
.rb-gallery-site .panel { background:#141414!important; border:1px solid var(--gallery-line)!important; box-shadow:0 30px 100px #0008!important; }
.rb-gallery-site #auth-modal > .panel { max-height:92svh; overflow:auto; }
.rb-gallery-site #profile-drawer .drawer { background:#111!important; max-width:680px; padding:32px; }
.rb-gallery-site #detail-content { max-width:calc(100vw - 70px)!important; padding:0!important; border-radius:20px!important; background:#edece8!important; color:#101010!important; }
.rb-profile-sheet { display:grid; grid-template-columns: minmax(260px,.72fr) minmax(300px,1.28fr); min-height:75svh; }
.rb-profile-copy { padding:48px 36px; align-self:start; position:sticky; top:0; }
.rb-profile-copy h2 { font-size:clamp(34px,4vw,58px); line-height:1.05; }
.rb-profile-copy .rb-eyebrow { font:10px Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; color:#666; }
.rb-profile-copy .rb-bio { font:15px/1.7 Arial,sans-serif; white-space:pre-wrap; margin:25px 0; }
.rb-profile-copy .rb-report-link { display:inline-block; margin-top:22px; font-size:11px; color:#666; text-decoration:underline; text-underline-offset:4px; }
.rb-profile-facts { margin:22px 0; display:grid; grid-template-columns:1fr 1fr; gap:15px; font-size:13px; }
.rb-profile-facts dt { color:#777; margin-bottom:4px; font-size:10px; text-transform:uppercase; }
.rb-profile-photos { display:flex; flex-direction:column; gap:20px; padding:24px 60px 24px 10px; }
.rb-profile-photos img { display:block; width:100%; border-radius:12px; object-fit:contain; background:#d7d7d4; }
.rb-gallery-site #detail-content .btn { color:#111!important; border-color:#1113!important; }
.rb-gallery-site #detail-content .btn-primary { background:var(--gallery-accent)!important; color:var(--gallery-bg)!important; }
.rb-profile-close { position:sticky; top:14px; float:right; margin:14px 14px -58px 0; z-index:3; }
.rb-gallery-site .profile-upload-preview { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.rb-photo-editor { border:1px solid var(--gallery-line); border-radius:10px; padding:8px; }
.rb-photo-editor.is-over { outline:2px solid white; }
.rb-photo-editor img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:6px; }
.rb-photo-editor-actions { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.rb-gallery-site .rb-photo-editor-actions button { background:#ffffff0b!important; border:1px solid var(--gallery-line); border-radius:5px; color:inherit; padding:6px; font-size:11px; flex:1 1 auto; cursor:pointer; }
.rb-photo-editor .rb-photo-note { font-size:10px; color:#bbb; margin-top:6px; }
.rb-gallery-site .rb-admin-link { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:900px) {
  .rb-gallery-intro { grid-template-columns:1fr; }
  #gallery-intro { max-width:none; }
  .rb-gallery-site #featured-gallery { padding-top:120px; gap:28px; }
  .rb-featured-card { flex-basis:64vw; }
  .rb-featured-photo { height:43svh; }
  body.rb-gallery-site #profile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rb-profile-sheet { grid-template-columns:1fr; }
  .rb-profile-copy { position:static; padding:45px 25px 15px; }
  .rb-profile-photos { padding:15px 25px 25px; }
  .rb-gallery-site #detail-content { max-width:96vw!important; }
}
@media(max-width:600px) {
  body.rb-gallery-site > nav .mx-auto { padding:18px 5vw!important; }
  body.rb-gallery-site #featured-gallery { min-height:100svh; padding-top:110px; gap:26px; padding-bottom:24px; }
  .rb-gallery-intro { gap:10px; }
  .rb-featured-card { flex-basis:82vw; }
  .rb-featured-photo { height:42svh; min-height:265px; border-radius:14px; }
  .rb-gallery-controls { flex-wrap:wrap; gap:10px; }
  .rb-gallery-pagination { gap:4px; }
  .rb-gallery-controls > a { display:none; }
  .rb-featured-caption button { font-size:20px; }
  body.rb-gallery-site .section { padding:65px 5vw; }
  body.rb-gallery-site #profile-grid { grid-template-columns:1fr; gap:22px; }
  body.rb-gallery-site #profile-grid > .card > .relative { height:410px; }
  .rb-gallery-site #profile-drawer .drawer { padding:22px; }
  .rb-gallery-site .profile-upload-preview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rb-profile-copy h2 { font-size:38px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .rb-gallery-site *, .rb-gallery-site *::before, .rb-gallery-site *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
