.gallery-page{background:#0c111d;border:solid #192644;border-width:1px 1px 3px;border-radius:6px;padding:1.5rem;box-shadow:0 6px 16px rgba(0,0,0,.5);color:#fff}.gallery-page .my-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .75rem;background:#111827;border:1px solid #192644;border-radius:4px;color:#fff;font-size:.8rem;cursor:pointer;transition:all .15s;white-space:nowrap}.gallery-page .my-btn:hover{border-color:#34d399}.gallery-page .my-btn:disabled{opacity:.5;cursor:not-allowed}.gallery-page .my-btn--primary{background:#34d399;border-color:#34d399;color:#070a13;font-weight:500}.gallery-page .my-btn--primary:hover{opacity:.9}.gallery-page .my-btn--sm{padding:.3rem .5rem;font-size:.75rem}.gallery-page .my-btn--active{background:rgba(52,211,153,.1);border-color:#34d399;color:#34d399}.gallery-page .my-empty{text-align:center;padding:3rem 1rem;color:#5a6478}.gallery-page .my-empty svg{opacity:.3;margin-bottom:.75rem}.gallery-page .my-empty-title{font-size:1rem;font-weight:600;color:#fff;margin:0 0 .35rem}.gallery-page .my-empty-hint{font-size:.82rem;color:#5a6478;margin:0}.gallery-page .my-empty-hint a{color:#34d399}.gallery-header{text-align:center;margin-bottom:1.5rem}.gallery-header h2{font-family:var(--font-heading,"Minecrafter",monospace);font-size:1.3rem;margin:0 0 .35rem;color:#fff}.gallery-header p{color:#5a6478;font-size:.85rem;margin:0}.gallery-upload-bar{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.25rem}.gallery-upload-success{font-size:.82rem;color:var(--primary)}.gallery-signin-prompt{font-size:.82rem;color:#5a6478;margin-bottom:1rem;padding:.6rem .85rem;background:#111827;border:1px solid #192644;border-radius:4px;text-align:center}.gallery-signin-prompt a{color:var(--primary)}.gallery-upload{background:#111827;border:1px solid var(--border);border-radius:6px;padding:1rem;margin-bottom:1.25rem}.gallery-upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.gallery-upload-header h3{font-size:.95rem;margin:0}.gallery-upload-close{background:none;border:none;color:var(--muted);cursor:pointer;padding:.2rem}.gallery-upload-close:hover{color:var(--text)}.gallery-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;border:2px dashed var(--border);border-radius:6px;cursor:pointer;transition:border-color .2s,background .2s;color:var(--muted);margin-bottom:.75rem}.gallery-dropzone--active,.gallery-dropzone:hover{border-color:var(--primary);background:rgba(52,211,153,.03)}.gallery-dropzone p{font-size:.85rem;margin:0}.gallery-dropzone-hint{font-size:.72rem;color:var(--muted)}.gallery-preview{position:relative;margin-bottom:.75rem}.gallery-preview-img{width:100%;max-height:300px;object-fit:contain;border-radius:4px;background:var(--bg)}.gallery-preview-clear{position:absolute;top:.5rem;right:.5rem;display:flex;align-items:center;gap:.25rem;padding:.3rem .5rem;background:rgba(0,0,0,.7);border:none;border-radius:3px;color:#fff;font-size:.75rem;cursor:pointer}.gallery-caption-input{width:100%;padding:.45rem .65rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem;margin-bottom:.75rem;outline:none;box-sizing:border-box}.gallery-caption-input:focus{border-color:var(--primary)}.gallery-upload-error{font-size:.82rem;color:#ef5656;margin-bottom:.5rem}.gallery-upload-actions{display:flex;gap:.5rem}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.gallery-sort{display:flex;gap:.25rem}.gallery-count{font-size:.78rem;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem;gap:.75rem}@media (max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:500px){.gallery-grid{grid-template-columns:1fr}}.gallery-card{background:#111827;border:1px solid var(--border);border-radius:6px;overflow:hidden;transition:border-color .2s;box-shadow:0 2px 6px rgba(0,0,0,.3)}.gallery-card--featured,.gallery-card:hover{border-color:var(--primary)}.gallery-card--featured{box-shadow:0 0 0 1px rgba(52,211,153,.1)}.gallery-card-img-wrap{cursor:pointer;overflow:hidden}.gallery-card-img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .2s}.gallery-card:hover .gallery-card-img{transform:scale(1.02)}.gallery-card-footer{padding:.5rem .65rem;display:flex;justify-content:space-between;align-items:flex-end;gap:.5rem}.gallery-card-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.gallery-card-caption{font-size:.8rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-card-member{display:flex;align-items:center;gap:.3rem;font-size:.7rem;color:var(--muted)}.gallery-vote-btn{display:inline-flex;align-items:center;gap:.25rem;background:var(--bg);border:1px solid var(--border);color:var(--muted);padding:.2rem .45rem;border-radius:3px;cursor:pointer;font-size:.75rem;transition:all .15s;flex-shrink:0}.gallery-vote-btn--voted,.gallery-vote-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.gallery-vote-btn--voted{background:rgba(52,211,153,.06)}.gallery-vote-btn:disabled{cursor:default;opacity:.6}.gallery-load-more{display:flex;justify-content:center;margin-top:1.25rem}.gallery-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;cursor:pointer}.gallery-lightbox-content{position:relative;max-width:90vw;max-height:90vh;cursor:default}.gallery-lightbox-img{max-width:90vw;max-height:80vh;object-fit:contain;display:block;border-radius:4px}.gallery-lightbox-close{position:absolute;top:-2rem;right:0;background:none;border:none;color:#fff;cursor:pointer;opacity:.7;transition:opacity .15s}.gallery-lightbox-close:hover{opacity:1}.gallery-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);border:none;color:#fff;cursor:pointer;padding:.75rem;border-radius:4px;opacity:.7;transition:opacity .15s}.gallery-lightbox-nav:hover{opacity:1}.gallery-lightbox-nav--prev{left:-3.5rem}.gallery-lightbox-nav--next{right:-3.5rem}@media (max-width:900px){.gallery-lightbox-nav--prev{left:.5rem}.gallery-lightbox-nav--next{right:.5rem}}.gallery-lightbox-info{padding:.75rem 0;color:#fff}.gallery-lightbox-caption{font-size:.9rem;display:block;margin-bottom:.3rem}.gallery-lightbox-meta{display:flex;gap:1rem;font-size:.78rem;color:rgba(255,255,255,.6)}.gallery-lightbox-votes{display:flex;align-items:center;gap:.25rem}