:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:inherit}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.gallery-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;padding:1rem 0}@media (min-width: 768px){.gallery-grid{grid-template-columns:repeat(3,minmax(320px,1fr));gap:2.5rem;justify-content:center}}.gallery-item{position:relative;overflow:hidden;border-radius:1rem;box-shadow:0 2px 16px #00000014;background:#18181b;transition:transform .2s;aspect-ratio:1/1;width:100%;min-height:240px;max-width:480px;margin:0 auto}.gallery-item:before{content:"";display:block;padding-top:100%}.gallery-item>*{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.gallery-item:hover img{transform:scale(1.05)}.img-placeholder{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#23272f 60%,#18181b);filter:blur(8px);opacity:1;transition:opacity .4s;z-index:1}.img-placeholder.loaded{opacity:0}.gallery-item img.img-loading{opacity:0;transition:opacity .4s}.gallery-item img.img-loaded{opacity:1;transition:opacity .4s;z-index:2}.lightbox-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;background:#222;border-radius:1rem;box-shadow:0 4px 32px #00000040;padding:2rem;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;box-sizing:border-box;overflow-y:auto}.lightbox-comments-wrapper{width:100%;max-width:600px;margin:1.2rem auto 0;align-self:center;display:flex;flex-direction:column;justify-content:flex-start;align-items:center}.lightbox-comments-wrapper .comment-section{background:var(--color-secondary, #23272f);border-radius:.7rem;box-shadow:0 1px 8px #00000014;width:100%;padding:1.2rem 1rem .7rem;color:#fff;display:flex;flex-direction:column;height:220px;min-height:0;max-width:600px;box-sizing:border-box;margin:0 auto}.lightbox-comments-wrapper .comments-list{flex:1 1 auto;min-height:0;max-height:140px;overflow-y:auto;margin-bottom:.5rem}.lightbox-content img{max-width:70vw;max-height:60vh;border-radius:.75rem;margin-bottom:1rem;display:block;margin-left:auto;margin-right:auto}.lightbox-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;z-index:1}.lightbox-caption{color:#fff;text-align:center}.lightbox-tags{margin-top:.5rem}.lightbox-tag{display:inline-block;background:#333;color:#fff;border-radius:.5rem;padding:.2rem .7rem;margin:0 .3rem;font-size:.9rem}:root{--color-bg: #f6f6f9;--color-bg-alt: #fff;--color-text: #18181b;--color-primary: #646cff;--color-secondary: #23272f;--color-border: #e0e0e0}@media (prefers-color-scheme: dark){:root{--color-bg: #18181b;--color-bg-alt: #23272f;--color-text: #fff;--color-primary: #646cff;--color-secondary: #23272f;--color-border: #23272f}}body,#root,.App{background:var(--color-bg);color:var(--color-text);transition:background .3s,color .3s}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.category-filter{display:flex;justify-content:center;gap:1rem;margin:2rem 0 1.5rem}.category-filter button{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:.5rem;padding:.5rem 1.2rem;font-size:1rem;cursor:pointer;transition:background .2s,color .2s}.category-filter button.active,.category-filter button:hover{background:var(--color-primary);color:#fff}.search-bar{display:flex;justify-content:center;margin:1.5rem 0 .5rem}.search-bar input{width:100%;max-width:400px;padding:.7rem 1.2rem;border-radius:.7rem;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:1.1rem;box-shadow:0 1px 8px #00000014;outline:none;transition:background .2s,color .2s}.search-bar input:focus{background:var(--color-bg-alt);color:var(--color-text)}.comment-section{margin-top:2rem;background:var(--color-secondary);border-radius:.7rem;padding:1.2rem 1rem .7rem;color:#fff;box-shadow:0 1px 8px #00000014;width:100%}.comments-list{max-height:170px;overflow-y:auto;padding-right:4px}.comment-section h3{margin:0 0 .7rem;font-size:1.1rem;font-weight:600}.comment-form{display:flex;gap:.5rem;margin-bottom:1rem}.comment-form input{flex:1;padding:.5rem 1rem;border-radius:.5rem;border:none;background:#18181b;color:#fff;font-size:1rem}.comment-form button{background:var(--color-primary);color:#fff;border:none;border-radius:.5rem;padding:.5rem 1.2rem;font-size:1rem;cursor:pointer;transition:background .2s}.comment-form button:hover{background:#535bf2}.comments-list{max-height:180px;overflow-y:auto;margin-bottom:.5rem}.comment-item{padding:.4rem 0;border-bottom:1px solid #2d2d36;font-size:.98rem}.comment-empty,.comment-loading{color:#aaa;font-size:.95rem;padding:.7rem 0;text-align:center}.admin-dashboard,.admin-manager{max-width:700px;margin:3rem auto;background:var(--color-bg-alt);border-radius:1.2rem;box-shadow:0 2px 16px #0000001a;padding:2.5rem 2rem 2rem;position:relative}.admin-dashboard h2,.admin-manager h2{margin-top:0;margin-bottom:1.5rem;font-size:2rem;font-weight:700}.admin-logout{position:absolute;top:1.2rem;right:1.2rem;background:var(--color-primary);color:#fff;border:none;border-radius:.5rem;padding:.5rem 1.2rem;font-size:1rem;cursor:pointer;transition:background .2s;z-index:2}.admin-logout:hover{background:#535bf2}.admin-back{position:absolute;top:1.2rem;left:1.2rem;color:var(--color-primary);background:none;border:none;font-size:1rem;text-decoration:none;font-weight:600;cursor:pointer;z-index:2}.admin-manager-header{position:relative;margin-bottom:2rem;text-align:center}.admin-upload-form{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;align-items:center}.admin-upload-form input[type=file]{flex:1 1 100%}.admin-upload-form input,.admin-upload-form select{flex:1 1 180px;padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:1rem}.admin-upload-form button{background:var(--color-primary);color:#fff;border:none;border-radius:.5rem;padding:.5rem 1.2rem;font-size:1rem;cursor:pointer;transition:background .2s}.admin-upload-form button:hover{background:#535bf2}.upload-progress{width:100%;background:#23272f;border-radius:.5rem;margin-top:.5rem;overflow:hidden;font-size:.95rem;color:#fff}.upload-progress>div{background:var(--color-primary);height:1.2rem;text-align:center;transition:width .3s}.admin-photo-list{margin-top:2rem}.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem}.admin-photo-item{background:var(--color-bg);border-radius:.7rem;box-shadow:0 1px 8px #00000014;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative}.admin-photo-item img{width:100%;max-width:140px;border-radius:.5rem;margin-bottom:.5rem}.admin-photo-item input{width:100%;margin-bottom:.3rem;padding:.3rem .7rem;border-radius:.4rem;border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text);font-size:.98rem}.admin-photo-item button{margin:0 .2rem;background:var(--color-primary);color:#fff;border:none;border-radius:.4rem;padding:.3rem .9rem;font-size:.98rem;cursor:pointer;transition:background .2s}.admin-photo-item button:hover{background:#535bf2}.admin-empty{color:#aaa;text-align:center;padding:2rem 0}
