:root{--bg:#070914;--ink:#eef0ff;--mut:#8f95c4;--a:#7c5cff;--b:#22d3ee;--card:rgba(20,24,52,.62);--line:rgba(140,150,255,.18)}
*{box-sizing:border-box;margin:0}body{font-family:'Readex Pro',system-ui,sans-serif;background:radial-gradient(120% 90% at 50% 0,#14174a,var(--bg) 60%);color:var(--ink);min-height:100vh}
#stars{position:fixed;inset:0;z-index:-1;width:100%;height:100%}
.hidden{display:none!important}
.screen{min-height:100vh;padding:24px;animation:in .6s cubic-bezier(.2,.8,.2,1)}
@keyframes in{from{opacity:0;transform:translateY(18px) scale(.98);filter:blur(6px)}}
.leave{animation:out .35s ease forwards}@keyframes out{to{opacity:0;transform:translateY(-14px) scale(.98);filter:blur(6px)}}
#login{display:grid;place-items:center}
.panel{background:var(--card);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:22px;padding:36px;max-width:440px;width:100%;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 80px #0008,0 0 60px #7c5cff22}
h1{font-size:2rem;line-height:1.3;font-weight:700;background:linear-gradient(90deg,var(--ink),var(--b));-webkit-background-clip:text;color:transparent}
p,small{color:var(--mut);line-height:1.8}small{color:#ff7b95}
.btn{font:inherit;cursor:pointer;border:0;color:#fff;padding:11px 20px;border-radius:12px;background:linear-gradient(135deg,var(--a),#4f46e5);text-decoration:none;text-align:center;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px #7c5cff55}.btn.big{padding:15px}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--mut)}
:focus-visible{outline:2px solid var(--b);outline-offset:3px}
.gbox{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(155deg,#151526ed,#090b18f2 72%);backdrop-filter:blur(18px);border:1px solid #d9b36a55;border-radius:28px;padding:34px;max-width:470px;width:100%;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;box-shadow:0 30px 90px #000b,0 0 70px #d9b36a16}
.gbox h1{background:linear-gradient(90deg,#fff5d6,#d9b36a);-webkit-background-clip:text}
.gbox p{max-width:360px}.gbox .btn.big{width:100%;background:linear-gradient(135deg,#d9b36a,#966b2c);color:#17120a;font-weight:700;box-shadow:0 10px 30px #d9b36a26}
.gbox .btn.ghost{color:#f3dfb2;border-color:#d9b36a55}
.stagewrap{height:150px;width:100%;display:grid;place-items:center}
.guild-icon{display:block;object-fit:cover;border-radius:50%;border:3px solid #d9b36a;box-shadow:0 0 0 6px #d9b36a1c,0 12px 32px #0008,0 0 34px #d9b36a38}
.login-guild-icon{width:112px;height:112px;animation:iconFloat 4s ease-in-out infinite}
.header-guild-icon{width:42px;height:42px;flex:none}
@keyframes iconFloat{50%{transform:translateY(-7px)}}
.glow{position:absolute;z-index:-1;width:200px;height:200px;top:15px;border-radius:50%;background:#d9b36a22;filter:blur(60px);pointer-events:none}
.lock{display:flex;align-items:center;justify-content:center;gap:8px;color:#bba77d;font-size:.82rem}
.lock svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}
header{display:flex;align-items:center;gap:20px;flex-wrap:wrap;max-width:1200px;margin:0 auto 28px;padding:12px 0}
header h2{font-weight:700}nav{display:flex;gap:6px;flex:1}
nav button{font:inherit;color:var(--mut);background:none;border:0;padding:9px 16px;border-radius:10px;cursor:pointer;transition:.25s}
nav button.on{color:#fff;background:#7c5cff33;box-shadow:inset 0 0 0 1px var(--a)}
.who{display:flex;gap:10px;align-items:center;color:var(--mut)}
.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#0b0e26}
.grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;transition:opacity .25s,transform .25s}
.grid.swap{opacity:0;transform:translateY(12px)}
.item{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,box-shadow .3s;animation:item-enter .55s ease both;animation-delay:calc(var(--card-index,0)*45ms)}
.item:hover{border-color:#d9b36a99;box-shadow:0 24px 48px #0007,0 0 25px #d9b36a18}
@keyframes item-enter{from{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}
.btn[aria-disabled="true"]{pointer-events:none;opacity:.7}
.item img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#0b0e26;transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .4s}
.item:hover>img,.item:hover>.item-video{transform:perspective(900px) rotateX(2deg) scale(1.035);filter:saturate(1.12)}
.item div{padding:16px;display:flex;flex-direction:column;gap:10px;transform:translateZ(10px)}.item h3{font-size:1.05rem}.item span{font-size:.82rem;color:var(--mut)}
.item .item-details-button{position:relative;overflow:hidden;margin-top:3px;border:1px solid #d9b36a88;background:linear-gradient(120deg,#d9b36a,#a77b32 48%,#745424);color:#17120a;font-weight:700;box-shadow:0 7px 22px #d9b36a25;transition:transform .22s,box-shadow .22s,filter .22s}
.item .item-details-button::after{position:absolute;inset:-70% auto -70% -42%;width:30%;content:"";background:#fff8;transform:rotate(22deg) translateX(-220%);transition:transform .6s}
.item .item-details-button:hover{transform:none;box-shadow:0 12px 30px #d9b36a40;filter:brightness(1.08)}
.item .item-details-button:hover::after{transform:rotate(22deg) translateX(620%)}
.empty{grid-column:1/-1;text-align:center;color:var(--mut);padding:60px}
.modal{position:fixed;inset:0;display:grid;place-items:center;background:#000a;padding:20px;overflow-y:auto;overscroll-behavior:contain;animation:fade .25s}
@keyframes fade{from{opacity:0}}.modal .panel{animation:pop .35s cubic-bezier(.2,1.3,.4,1)}@keyframes pop{from{opacity:0;transform:scale(.88)}}
.modal .panel{max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}
input,select,textarea{font:inherit;color:var(--ink);background:#0b0e26;border:1px solid var(--line);border-radius:12px;padding:12px}
.file{color:var(--mut);display:flex;flex-direction:column;gap:6px}.row{display:flex;gap:10px}#msg{color:#ff7b95;min-height:1.4em}.upload-progress{width:100%;height:12px;accent-color:var(--b);border:0;border-radius:999px;overflow:hidden}.upload-progress::-webkit-progress-bar{background:#0b0e26;border:1px solid var(--line);border-radius:999px}.upload-progress::-webkit-progress-value{background:linear-gradient(90deg,var(--a),var(--b));border-radius:999px}.upload-progress::-moz-progress-bar{background:linear-gradient(90deg,var(--a),var(--b));border-radius:999px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.brand-logo{width:54px;height:48px;object-fit:contain;vertical-align:middle}
.login-logo{width:160px;height:110px;align-self:center}
.site-brand{display:flex;align-items:center;gap:12px}
.item-video{width:100%;aspect-ratio:16/10;object-fit:cover;background:#0b0e26}
.scan-badge{align-self:flex-start;border-radius:999px;padding:5px 10px;font-size:.78rem;line-height:1.6}
.scan-clean{color:#a7f3d0;background:#10b98120;border:1px solid #10b98155}
.scan-partial{color:#fde68a;background:#f59e0b1c;border:1px solid #f59e0b55}
.scan-blocked{color:#fecaca;background:#ef44441c;border:1px solid #ef444455}
.scan-pending{color:#cbd5e1;background:#64748b24;border:1px solid #64748b55}
.scan-report{font-size:.84rem}
.field-hint{color:var(--mut);font-size:.82rem;line-height:1.6}
.image-preview{width:min(100%,280px);max-height:120px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#0b0e26}
.paste-target{width:100%;min-height:56px;padding:12px;border:1px dashed var(--a);border-radius:12px;background:#7c5cff18;color:var(--ink);font:inherit;cursor:pointer}
.paste-target:hover,.paste-target:focus-visible{background:#7c5cff33;border-color:var(--b)}
.admin-panel{max-width:1200px;margin:0 auto;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:20px}
.admin-heading,.admin-item-meta{display:flex;align-items:center;justify-content:space-between;gap:16px}
.admin-heading h2{margin-top:6px}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:22px 0}
.admin-stat{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#0b0e2688;color:var(--mut)}
.admin-stat strong{font-size:1.5rem;color:var(--ink)}
.admin-tabs{display:flex;gap:8px;margin-bottom:16px}
.admin-tabs button{font:inherit;color:var(--mut);background:transparent;border:1px solid var(--line);border-radius:10px;padding:9px 16px;cursor:pointer}
.admin-tabs button.on{color:white;background:#7c5cff33;border-color:var(--a)}
.admin-list{display:grid;gap:12px}
.admin-user-controls{display:grid;gap:12px;margin:0 0 16px}
.admin-user-controls input{width:100%}
.admin-user-filters{flex-wrap:wrap;margin:0}
.admin-hint{color:var(--mut);font-size:.82rem}
.admin-more{justify-self:center;margin-top:16px}
.admin-row{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#0b0e2688}
.admin-avatar{width:44px;height:44px;flex:none;border-radius:50%;object-fit:cover}
.admin-user-details{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px;overflow-wrap:anywhere}
.admin-user-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.role-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:.73rem}
.admin-role{background:#7c5cff33;color:#d5caff}
.member-role{background:#22d3ee20;color:#9be7ff}
.unknown-role{background:#f59e0b22;color:#ffd17a}
.admin-user-details span,.admin-user-details small,.admin-item-meta span{color:var(--mut);font-size:.82rem}
.admin-item{display:grid;grid-template-columns:1fr minmax(150px,.8fr) minmax(140px,.7fr) minmax(180px,1.5fr);gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#0b0e2688}
.admin-item-meta{grid-column:1/-1}
.admin-item input,.admin-item select{min-width:0;width:100%}
.admin-item .row{grid-column:1/-1}
.admin-activity{display:grid;gap:20px}
.activity-section{display:grid;gap:10px}
.activity-section h3{margin-bottom:2px}
.activity-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#0b0e2688}
.activity-row span{color:var(--mut);font-size:.84rem}
.btn.danger{background:#a82d50}
.details-dialog,.image-zoom-dialog{color:var(--ink);border:1px solid var(--line);background:#0b0e26f5;box-shadow:0 28px 100px #000b}
.details-dialog{width:min(760px,calc(100vw - 28px));max-width:none;max-height:min(92dvh,900px);padding:0;border-radius:24px;overflow:auto;overscroll-behavior:contain}
.details-dialog::backdrop,.image-zoom-dialog::backdrop{background:#03040bd9;backdrop-filter:blur(8px)}
.details-dialog.opening::backdrop{animation:details-backdrop-in .35s ease both}
.details-dialog.closing::backdrop{animation:details-backdrop-out .19s ease both}
@keyframes details-backdrop-in{from{background:#03040b00;backdrop-filter:blur(0)}to{background:#03040bd9;backdrop-filter:blur(8px)}}
@keyframes details-backdrop-out{to{background:#03040b00;backdrop-filter:blur(0)}}
.details-panel{position:relative;display:grid;gap:18px;padding:clamp(18px,4vw,34px);background:radial-gradient(100% 50% at 50% 0,#22224b99,transparent 70%)}
.details-dialog.opening .details-panel{animation:details-panel-in .62s cubic-bezier(.16,1,.3,1) both;transform-origin:center top}
@keyframes details-panel-in{from{opacity:0;transform:perspective(1200px) rotateX(-15deg) translateY(44px) scale(.9);filter:blur(12px)}to{opacity:1;transform:perspective(1200px) rotateX(0) translateY(0) scale(1);filter:blur(0)}}
.details-close{justify-self:start}
.details-heading{display:grid;gap:7px;padding-inline-end:100px}
.details-heading h2{overflow-wrap:anywhere;font-size:clamp(1.35rem,4vw,2rem)}
.details-kicker,.details-label{color:var(--mut);font-size:.82rem}
.details-category{justify-self:start;padding:5px 12px;border:1px solid #d9b36a55;border-radius:999px;color:#f3dfb2;background:#d9b36a12;font-size:.82rem}
.details-cover-wrap{position:relative;display:grid;place-items:center;min-height:180px;max-height:420px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#070914}
.details-cover{display:block;width:100%;max-height:420px;object-fit:contain;cursor:zoom-in}
.details-zoom{position:absolute;inset:auto 12px 12px auto;backdrop-filter:blur(12px);background:#070914cc!important;color:var(--ink)!important}
.details-publisher{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:#ffffff06}
.details-avatar{width:48px;height:48px;flex:none;border-radius:50%;object-fit:cover;background:#151831}
.details-publisher-text,.details-meta-item{display:flex;min-width:0;flex-direction:column;gap:4px}
.details-publisher-text strong,.details-meta-item strong{overflow-wrap:anywhere}
.details-panel>.scan-badge{max-width:100%;white-space:normal}
.details-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.details-meta-item{min-width:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:#ffffff05}
.details-filename{direction:ltr;text-align:right}
.details-video{width:100%;max-height:420px;border-radius:16px;background:#000}
.details-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:4px}
.image-zoom-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;padding:56px 18px 18px;border:0;border-radius:0;background:#03040bf2;place-items:center}
.image-zoom-dialog[open]{display:grid}
.image-zoom-dialog[open]::backdrop{animation:details-backdrop-in .3s ease both}
.image-zoom-dialog img{max-width:100%;max-height:calc(100dvh - 82px);object-fit:contain;animation:zoom-image-in .48s cubic-bezier(.16,1,.3,1) both}
@keyframes zoom-image-in{from{opacity:0;transform:perspective(1200px) rotateY(-12deg) scale(.88);filter:blur(12px)}to{opacity:1;transform:perspective(1200px) rotateY(0) scale(1);filter:blur(0)}}
.image-zoom-close{position:absolute;top:14px;inset-inline-start:14px;z-index:1}
.requests-panel{display:grid;gap:20px;animation:requests-enter .45s cubic-bezier(.16,1,.3,1) both}
@keyframes requests-enter{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.requests-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.requests-heading h2{margin:6px 0}
.requests-heading-actions{display:flex;gap:10px;flex-wrap:wrap}
.requests-status{min-height:1.5em;color:#a7f3d0}
.requests-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:16px}
.request-card{display:grid;align-content:start;gap:16px;min-width:0;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#171a38d9,#0b0e26d9);box-shadow:0 12px 30px #0003;animation:item-enter .45s ease both}
.request-card:hover{border-color:#d9b36a77;box-shadow:0 18px 36px #0005,0 0 24px #d9b36a14}
.request-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.request-author{display:flex;align-items:center;gap:11px;min-width:0}
.request-avatar{width:46px;height:46px;flex:none;border:2px solid #d9b36a88;border-radius:50%;object-fit:cover;background:#151831;box-shadow:0 0 0 4px #d9b36a12}
.request-author-info{display:grid;gap:4px;min-width:0}
.request-author-info strong{overflow-wrap:anywhere}
.request-author-info time{color:var(--mut);font-size:.77rem}
.request-delete{padding:7px 10px;font-size:.8rem}
.request-content{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);line-height:1.9}
.request-votes{display:flex;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}
.request-vote{flex:1;min-width:145px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#ffffff06;color:var(--mut);font:inherit;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s}
.request-vote:hover:not(:disabled){transform:translateY(-2px);background:#ffffff0d}
.request-vote-yes:hover:not(:disabled),.request-vote-yes.selected{color:#a7f3d0;background:#10b98120;border-color:#10b98177}
.request-vote-no:hover:not(:disabled),.request-vote-no.selected{color:#fecaca;background:#ef44441c;border-color:#ef444477}
.request-vote:disabled{opacity:.6;cursor:wait}
.request-vote-note{align-self:center;color:var(--mut);font-size:.82rem}
.request-vote[aria-pressed="true"]{box-shadow:0 0 0 2px currentColor inset}
.requests-heading-actions .btn:disabled{opacity:.65;cursor:not-allowed;background:#343650;color:var(--mut);box-shadow:none}
.request-dialog{width:min(600px,calc(100vw - 28px))}
.request-form{gap:16px}
.request-form .details-heading{padding-inline-end:100px}
.request-field{display:grid;gap:9px;color:var(--ink)}
.request-field textarea{width:100%;min-height:130px;resize:vertical;line-height:1.8}
.request-field textarea::placeholder{color:#777da8}
.request-form .details-actions{padding-top:0}
.request-form .details-actions>.btn{flex:1}
@media(min-width:1200px){
  header{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;gap:8px;flex-wrap:nowrap}
  .site-brand{gap:8px;white-space:nowrap;font-size:clamp(1rem,1.3vw,1.2rem)}
  nav{min-width:0;justify-content:center;gap:0}
  nav button{padding-inline:clamp(6px,.8vw,13px);white-space:nowrap}
  .who{flex:none;gap:5px;white-space:nowrap}
  .who .btn{padding-inline:clamp(8px,.8vw,13px);font-size:.9rem}
}
@media(max-width:700px){.admin-panel{padding:16px}.admin-row{align-items:flex-start;flex-wrap:wrap}.admin-user-details{flex-basis:calc(100% - 65px)}.admin-item{grid-template-columns:1fr}.admin-item-meta,.admin-item .row{grid-column:1}.site-brand{font-size:1rem}.brand-logo{width:44px;height:42px}.header-guild-icon{width:38px;height:38px}.gbox{padding:28px 22px}.stagewrap{height:130px}.login-guild-icon{width:100px;height:100px}}
@media(max-width:520px){.details-dialog{width:calc(100vw - 16px);max-height:96dvh;border-radius:18px}.details-panel{gap:14px;padding:16px}.details-heading{padding-block-start:42px;padding-inline-end:0}.details-close{position:absolute;top:14px;inset-inline-end:14px;padding:8px 12px}.details-cover-wrap,.details-cover{max-height:300px;min-height:150px}.details-meta{grid-template-columns:1fr 1fr}.details-actions>.btn{flex:1 1 100%}.requests-panel{gap:16px}.requests-heading{align-items:stretch}.requests-heading-actions{width:100%}.requests-heading-actions .btn{flex:1}.request-card{padding:15px}.request-form .details-heading{padding-inline-end:0}}
@media(max-height:760px){.modal{place-items:start center;padding:10px}.modal .panel{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);padding:20px;gap:12px}.image-preview{max-height:96px}.paste-target{min-height:44px;padding:8px}}
