.gallery-modal{position:fixed;inset:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;border:none;padding:0;background:transparent;overflow:hidden;z-index:2000;touch-action:pan-y}.gallery-modal::backdrop{background:#09090bf2}.gallery-modal[open]{display:flex;align-items:center;justify-content:center}.modal-backdrop{position:absolute;inset:0;z-index:0}.modal-content{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:var(--space-6);z-index:1}.modal-close{position:absolute;top:var(--space-4);right:var(--space-4);display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:none;border-radius:50%;background:#ffffff1a;backdrop-filter:blur(8px);color:var(--color-signature, #d4a574);cursor:pointer;transition:all var(--transition-fast);z-index:10}.modal-close:hover{background:var(--color-signature, #d4a574);color:#fff;transform:scale(1.1)}.modal-close:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.modal-image-wrapper{position:relative;display:inline-block;max-width:100%;height:auto}.modal-download{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:#0006;backdrop-filter:blur(8px);color:#ffffffe6;cursor:pointer;transition:all var(--transition-fast);z-index:20;text-decoration:none;opacity:0;pointer-events:auto}.modal-image-wrapper:hover .modal-download,.modal-download:focus-visible{opacity:1}@media(hover:none){.modal-download{opacity:1;background:#0000004d}}.modal-download:hover{background:var(--color-signature, #d4a574);color:#fff;transform:scale(1.1)}.modal-download:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.modal-counter{position:absolute;top:var(--space-4);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:#ffffff1a;backdrop-filter:blur(8px);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-fg);z-index:10}.counter-separator{color:var(--color-muted)}.modal-nav{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:56px;height:56px;border:none;border-radius:50%;background:#ffffff1a;backdrop-filter:blur(8px);color:var(--color-fg);cursor:pointer;transition:all var(--transition-fast);z-index:10}.modal-prev{left:var(--space-4)}.modal-next{right:var(--space-4)}.modal-nav:hover{background:#fff3;transform:translateY(-50%) scale(1.1)}.modal-nav:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.modal-image-container{display:flex;align-items:center;justify-content:center;max-width:calc(100vw - 160px);max-height:calc(100vh - 200px);pointer-events:none}.modal-image{max-width:100%;max-height:calc(100vh - 200px);-o-object-fit:contain;object-fit:contain;border-radius:var(--radius-soft);box-shadow:0 25px 50px -12px #00000080;pointer-events:auto;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);opacity:1;transform:scale(1)}.modal-image.changing{opacity:0;transform:scale(.96)}.modal-info{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);max-width:600px;width:90%;padding:var(--space-4);background:#18181bcc;backdrop-filter:blur(12px);border:1px solid var(--color-border-strong);border-radius:var(--radius-soft);text-align:center;z-index:10}.modal-prompt{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-fg);line-height:1.5}.modal-model{display:inline-flex;padding:var(--space-1) var(--space-3);background:#ffffff1a;border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em}@media(max-width:768px){.modal-content{padding:var(--space-4)}.modal-nav{width:44px;height:44px}.modal-prev{left:var(--space-2)}.modal-next{right:var(--space-2)}.modal-image-container{max-width:calc(100vw - 80px);max-height:calc(100vh - 180px)}.modal-image{max-height:calc(100vh - 180px)}.modal-info{padding:var(--space-3)}.modal-prompt{font-size:var(--text-xs)}}
