@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Inter:wght@300;400;500;600&display=swap";:root{--color-bg:#0a0a0a;--color-surface:#141414;--color-surface-2:#1e1e1e;--color-border:#ffffff14;--color-text:#f0ece4;--color-text-muted:#7a7268;--color-accent:#c9a84c;--color-accent-glow:#c9a84c26;--color-overlay:#000000e0;--font-display:"Playfair Display", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--shadow-card:0 4px 24px #00000080;--shadow-lifted:0 12px 48px #000000b3;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.32s cubic-bezier(.4, 0, .2, 1);--transition-spring:.48s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-size:16px;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-surface-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-footer{text-align:center;color:var(--color-text-muted);letter-spacing:.06em;border-top:1px solid var(--color-border);margin-top:2rem;padding:2rem;font-size:.75rem}.site-header{z-index:100;-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--color-border);background:#0a0a0ad9;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:1600px;margin:0 auto;padding:1.25rem 2rem;display:flex}.header-brand{flex-direction:column;gap:.15rem;display:flex}.header-title{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, var(--color-text) 0%, var(--color-accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.4rem,3vw,2rem);font-weight:700;line-height:1.2}.header-tagline{font-family:var(--font-body);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:300}.header-meta{align-items:center;gap:.75rem;display:flex}.header-count{color:var(--color-text-muted);background:var(--color-surface-2);border:1px solid var(--color-border);letter-spacing:.04em;border-radius:999px;padding:.3rem .75rem;font-size:.8rem;font-weight:500}.header-rule{background:linear-gradient(90deg, transparent 0%, var(--color-accent) 30%, var(--color-accent) 70%, transparent 100%);opacity:.3;height:1px}@media (width<=480px){.header-inner{padding:1rem}.header-count{display:none}}.masonry-wrapper{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:2rem}.masonry-grid{columns:4;column-gap:12px}@media (width<=1200px){.masonry-grid{columns:3}}@media (width<=800px){.masonry-grid{columns:2}}@media (width<=480px){.masonry-grid{columns:1}}.masonry-item{break-inside:avoid;border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;border:1px solid var(--color-border);opacity:0;margin-bottom:12px;padding:0;display:block;position:relative;overflow:hidden;transform:translateY(16px)}.masonry-item--loaded{animation:cardEnter .5s var(--transition-smooth) both}@keyframes cardEnter{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.masonry-img-wrap{width:100%;position:relative;overflow:hidden}.masonry-img{object-fit:cover;width:100%;height:auto;transition:transform .5s cubic-bezier(.4,0,.2,1);display:block}.masonry-overlay{transition:background var(--transition-smooth);background:0 0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.masonry-zoom-icon{width:36px;height:36px;color:var(--color-accent);opacity:0;transition:opacity var(--transition-smooth), transform var(--transition-spring);filter:drop-shadow(0 0 8px var(--color-accent-glow));transform:scale(.7)}.masonry-item:hover .masonry-img{transform:scale(1.05)}.masonry-item:hover .masonry-overlay{background:#00000059}.masonry-item:hover .masonry-zoom-icon{opacity:1;transform:scale(1)}.masonry-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (hover:none) and (pointer:coarse){.masonry-overlay{display:none}.masonry-item:active .masonry-img{opacity:.85;transition:transform .1s,opacity .1s;transform:scale(.97)}}.lightbox-backdrop{z-index:1000;background:var(--color-overlay);-webkit-backdrop-filter:blur(8px);justify-content:center;align-items:center;padding:1rem;animation:.22s both backdropIn;display:flex;position:fixed;inset:0}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.lightbox-img-wrap{pointer-events:none;justify-content:center;align-items:center;max-width:min(90vw,1400px);max-height:85vh;display:flex}.lightbox-img{object-fit:contain;border-radius:var(--radius-md);width:auto;max-width:100%;height:auto;max-height:85vh;box-shadow:var(--shadow-lifted);pointer-events:none;-webkit-user-select:none;user-select:none;animation:.3s cubic-bezier(.34,1.2,.64,1) both imgIn}@keyframes imgIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}.lightbox-close{border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-text);transition:background var(--transition-fast), transform var(--transition-fast);z-index:1001;background:#ffffff14;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:1.25rem;right:1.25rem}.lightbox-close svg{width:20px;height:20px}.lightbox-close:hover{background:#ffffff26;transform:scale(1.1)}.lightbox-nav{border:1px solid var(--color-border);width:52px;height:52px;color:var(--color-text);z-index:1001;transition:background var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);background:#ffffff12;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.lightbox-nav svg{width:22px;height:22px}.lightbox-nav--prev{left:1.25rem}.lightbox-nav--next{right:1.25rem}.lightbox-nav:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:#c9a84c26;transform:translateY(-50%)scale(1.08)}.lightbox-nav:disabled{opacity:.2;cursor:not-allowed}.lightbox-counter{color:var(--color-text-muted);border:1px solid var(--color-border);letter-spacing:.06em;z-index:1001;white-space:nowrap;background:#ffffff0f;border-radius:999px;padding:.3rem .85rem;font-size:.8rem;font-weight:500;position:fixed;top:1.35rem;left:50%;transform:translate(-50%)}.lightbox-caption{z-index:1001;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.lightbox-filename{color:var(--color-text-muted);border:1px solid var(--color-border);letter-spacing:.04em;font-size:.75rem;font-family:var(--font-body);background:#00000080;border-radius:999px;padding:.3rem .85rem}.lightbox-swipe-hint{display:none}@media (hover:none) and (pointer:coarse){.lightbox-swipe-hint{color:var(--color-text-muted);letter-spacing:.12em;border:1px solid var(--color-border);z-index:1001;pointer-events:none;background:#0006;border-radius:999px;padding:.25rem .85rem;font-size:.72rem;animation:2.5s 1s both hintFade;display:block;position:fixed;bottom:3.5rem;left:50%;transform:translate(-50%)}@keyframes hintFade{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.lightbox-nav{display:none}}@media (width<=600px){.lightbox-close{width:48px;height:48px;top:.75rem;right:.75rem}.lightbox-nav{width:52px;height:52px}.lightbox-nav--prev{left:.25rem}.lightbox-nav--next{right:.25rem}}.login-backdrop{background:radial-gradient(ellipse at 20% 50%, #c9a84c0f 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, #c9a84c0a 0%, transparent 50%), var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:0;width:100%;max-width:380px;padding:2.5rem 2rem;animation:.5s cubic-bezier(.34,1.2,.64,1) both cardAppear;display:flex;box-shadow:0 0 0 1px #c9a84c14,0 32px 80px #0009}@keyframes cardAppear{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.login-card--shake{animation:.45s cubic-bezier(.36,.07,.19,.97) both shake}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(7px)}45%{transform:translate(-6px)}60%{transform:translate(5px)}75%{transform:translate(-3px)}90%{transform:translate(2px)}}.login-icon{background:var(--color-accent-glow);border:1px solid #c9a84c40;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:1.5rem;display:flex}.login-icon svg{width:24px;height:24px;color:var(--color-accent)}.login-title{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, var(--color-text) 0%, var(--color-accent) 100%);-webkit-text-fill-color:transparent;text-align:center;-webkit-background-clip:text;background-clip:text;margin-bottom:.4rem;font-size:1.6rem;font-weight:700}.login-subtitle{color:var(--color-text-muted);text-align:center;margin-bottom:2rem;font-size:.85rem}.login-form{flex-direction:column;gap:.75rem;width:100%;display:flex}.login-input-wrap{position:relative}.login-input{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);font-family:var(--font-body);letter-spacing:.1em;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:.8rem 1rem;font-size:1rem}.login-input::placeholder{color:var(--color-text-muted);letter-spacing:0}.login-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.login-input--error{border-color:#c0392b;box-shadow:0 0 0 3px #c0392b26}.login-error{color:#e07070;text-align:center;font-size:.8rem;animation:.2s both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.login-btn{color:#0a0a0a;width:100%;font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-md);cursor:pointer;transition:filter var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);background:linear-gradient(135deg,#c9a84c,#a8832a);border:none;margin-top:.25rem;padding:.85rem 1rem;font-size:.9rem;font-weight:600}.login-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.4;cursor:not-allowed}
