*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-width:320px;min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: #000000;--text-secondary: #666666;--border: #e0e0e0;--shadow: rgba(0, 0, 0, .08)}.app.dark-mode{--bg-primary: #000000;--bg-secondary: #1a1a1a;--text-primary: #ffffff;--text-secondary: #999999;--border: #333333;--shadow: rgba(255, 255, 255, .05)}body{font-family:"Instrument Serif",serif;background:var(--bg-primary);color:var(--text-primary);transition:background .4s ease,color .4s ease}.app{min-height:100vh;padding-bottom:80px;background:var(--bg-primary);transition:background .4s ease}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.navbar{position:sticky;top:0;background:var(--bg-primary);border-bottom:1px solid var(--border);padding:1rem 2rem;z-index:100;backdrop-filter:blur(10px);transition:all .3s ease}.navbar-container{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{font-family:Monsieur La Doulaise,cursive;font-size:2.5rem;color:var(--text-primary);text-decoration:none;transition:transform .3s ease}.logo:hover{transform:scale(1.05)}.logo:focus{outline:2px solid var(--text-primary);outline-offset:4px;border-radius:4px}.navbar-actions{display:flex;gap:1rem;align-items:center}.theme-toggle,.menu-toggle{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;padding:.6rem;border-radius:50%;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover,.menu-toggle:hover{transform:scale(1.1) rotate(10deg);border-color:var(--text-primary)}.theme-toggle:active,.menu-toggle:active{transform:scale(.95)}.theme-toggle:focus,.menu-toggle:focus{outline:2px solid var(--text-primary);outline-offset:2px}.dropdown-menu{position:absolute;top:100%;right:2rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;padding:.5rem;margin-top:.5rem;box-shadow:0 8px 24px var(--shadow);min-width:200px;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu a{display:block;padding:.75rem 1rem;color:var(--text-primary);text-decoration:none;border-radius:8px;transition:all .2s ease}.dropdown-menu a:hover{background:var(--bg-secondary);transform:translate(5px)}.dropdown-menu a:focus{outline:2px solid var(--text-primary);outline-offset:-2px}.main-content{max-width:1400px;margin:0 auto;padding:2rem;background:var(--bg-primary);transition:background .4s ease}.page-container{background:var(--bg-primary);transition:background .4s ease}.page-container h1{font-family:"Instrument Serif",serif;font-size:2.5rem;margin-bottom:2rem;color:var(--text-primary);font-weight:600;transition:color .4s ease}.wallpaper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.wallpaper-card{position:relative;overflow:hidden;border-radius:12px;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 12px var(--shadow);border:1px solid var(--border);animation:fadeInUp .5s ease backwards;aspect-ratio:16 / 9;width:100%;min-height:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.wallpaper-card:nth-child(1){animation-delay:.05s}.wallpaper-card:nth-child(2){animation-delay:.1s}.wallpaper-card:nth-child(3){animation-delay:.15s}.wallpaper-card:nth-child(4){animation-delay:.2s}.wallpaper-card:nth-child(5){animation-delay:.25s}.wallpaper-card:nth-child(6){animation-delay:.3s}.wallpaper-card:hover{transform:translateY(-8px);box-shadow:0 12px 28px var(--shadow);border-color:var(--text-primary)}.wallpaper-card:focus{outline:2px solid var(--text-primary);outline-offset:2px}.wallpaper-card:focus:not(:focus-visible){outline:none}.wallpaper-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease,opacity .3s ease;aspect-ratio:16 / 9}.wallpaper-card:hover img{transform:scale(1.05)}.wallpaper-skeleton{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--bg-secondary);border-radius:12px;overflow:hidden}.skeleton-shimmer{width:100%;height:100%;background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--border) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.category-card{background:var(--bg-secondary);border:1.5px solid var(--border);border-radius:10px;padding:.85rem 1.25rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-align:center;animation:fadeInUp .4s ease backwards;font-family:"Instrument Serif",serif;color:var(--text-primary);display:flex;flex-direction:column;align-items:center;justify-content:center}.category-card:hover{background:var(--text-primary);color:var(--bg-primary);transform:translateY(-4px) scale(1.02);box-shadow:0 8px 20px var(--shadow);border-color:var(--text-primary)}.category-card:focus{outline:2px solid var(--text-primary);outline-offset:2px}.category-card h3{font-size:1.1rem;font-weight:500;transition:transform .2s ease;font-family:"Instrument Serif",serif;color:inherit;margin:0}.category-card:hover h3{transform:scale(1.05)}.category-count{margin-top:.5rem;font-size:.9rem;color:var(--text-secondary);transition:color .3s ease}.category-card:hover .category-count{color:inherit;opacity:.8}.back-btn,.shuffle-btn{background:var(--text-primary);color:var(--bg-primary);border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;font-family:"Instrument Serif",serif;display:inline-flex;align-items:center;gap:.5rem;font-weight:600}.back-btn{margin-bottom:2rem}.back-btn:hover{transform:translate(-5px);box-shadow:0 4px 12px var(--shadow)}.shuffle-btn:hover{transform:translateY(-2px) rotate(5deg);box-shadow:0 4px 12px var(--shadow)}.back-btn:active,.shuffle-btn:active{transform:scale(.95)}.back-btn:focus,.shuffle-btn:focus{outline:2px solid var(--text-primary);outline-offset:2px}.shuffle-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.shuffle-btn:disabled:hover{transform:none;box-shadow:none}.modal-overlay{position:fixed;inset:0;background:#000000f2;display:flex;justify-content:center;align-items:center;z-index:1000;padding:2rem;animation:fadeIn .3s ease;backdrop-filter:blur(10px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{position:relative;width:min(95vw,720px);min-height:520px;max-height:95vh;background:var(--bg-primary);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border);animation:scaleIn .4s cubic-bezier(.4,0,.2,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.modal-image-container{width:100%;min-height:340px;max-height:70vh;background:var(--card-bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.modal-image-container picture,.modal-image-container img{width:100%;height:100%}.modal-image-container img{object-fit:contain;max-height:70vh}.modal-close{position:absolute;top:1rem;right:1rem;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);padding:.6rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .3s ease}.modal-close:hover{transform:scale(1.1) rotate(90deg);background:var(--text-primary);color:var(--bg-primary)}.modal-close:focus{outline:2px solid var(--text-primary);outline-offset:2px}.modal-actions{display:flex;gap:.5rem;padding:.75rem 1rem 1rem;justify-content:center;flex-wrap:wrap}.modal-btn{border:none;padding:.75rem 1.25rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:.5rem;justify-content:center;font-size:.95rem;font-weight:600;transition:all .2s ease;font-family:"Instrument Serif",serif;flex:1;min-width:100px}.modal-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}.modal-btn:active{transform:scale(.97)}.modal-btn:focus{outline:2px solid var(--text-primary);outline-offset:2px}.download-btn{background:var(--text-primary);color:var(--bg-primary)}.share-btn,.setwallpaper-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-primary);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:1rem;box-shadow:0 -2px 12px var(--shadow);z-index:100;backdrop-filter:blur(10px);transition:all .4s ease}.nav-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;color:var(--text-secondary);text-decoration:none;padding:.5rem 1rem;border-radius:8px;transition:all .3s ease;font-size:.875rem}.nav-item.active{color:var(--text-primary);background:var(--bg-secondary);transform:translateY(-3px)}.nav-item:hover{color:var(--text-primary);transform:translateY(-3px)}.nav-item:active{transform:scale(.95)}.nav-item:focus{outline:2px solid var(--text-primary);outline-offset:2px}.about-page p{font-size:1.125rem;line-height:1.8;margin-bottom:2rem;color:var(--text-secondary)}.social-links{margin-top:3rem}.social-links h2{font-size:1.5rem;margin-bottom:1.5rem}.social-links a{display:flex;align-items:center;gap:1rem;padding:1rem;margin-bottom:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);text-decoration:none;transition:all .3s ease}.social-links a:hover{background:var(--text-primary);color:var(--bg-primary);transform:translate(10px);box-shadow:0 4px 12px var(--shadow)}.social-links a:focus{outline:2px solid var(--text-primary);outline-offset:2px}.loading{text-align:center;padding:4rem;font-size:1.25rem;color:var(--text-secondary);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@media(max-width:768px){.navbar{padding:1rem}.logo{font-size:2rem}.main-content{padding:1rem}.page-container h1{font-size:2rem}.wallpaper-grid{grid-template-columns:1fr;gap:1rem}.wallpaper-card,.wallpaper-card img{aspect-ratio:9 / 16}.categories-grid{grid-template-columns:repeat(2,1fr)}.modal-overlay{padding:.5rem}.modal-content{margin:.5rem;max-width:95vw;max-height:95vh}.modal-content img{max-height:calc(95vh - 120px)}.modal-actions{padding:.5rem;gap:.25rem}.modal-btn{padding:.5rem .75rem;font-size:.85rem;min-width:80px}.shuffle-btn{padding:.5rem 1rem;font-size:.875rem}}@media(max-width:480px){.modal-actions{flex-direction:column;gap:.5rem}.modal-btn{width:100%;justify-content:center}}@media(min-width:769px){.wallpaper-card,.wallpaper-card img{aspect-ratio:16 / 9}}.search-form{margin-bottom:2rem}.search-input-wrapper{display:flex;align-items:center;gap:.5rem;background:var(--card-bg, #f5f5f5);border:2px solid var(--border-color, #ddd);border-radius:12px;padding:.5rem .75rem;transition:border-color .2s;min-width:0}.search-input-wrapper:focus-within{border-color:var(--accent-color, #6366f1)}.search-input{flex:1;min-width:0;width:100%;border:none;background:transparent;font-size:1rem;color:inherit;outline:none;padding:.25rem 0}.search-input::placeholder{color:#999}.search-clear-btn,.search-submit-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:.5rem;font-size:1rem;opacity:.7;color:#000;transition:opacity .2s,transform .2s}.search-clear-btn svg,.search-submit-btn svg{display:block;color:#000}.search-clear-btn:hover,.search-submit-btn:hover{opacity:1}.search-count{margin-bottom:1rem;color:#888;font-size:.9rem}.search-empty{text-align:center;padding:3rem 1rem;color:#888}.search-hint{font-size:.85rem;margin-top:.5rem;opacity:.7}.dark-mode .search-input-wrapper{background:#1e1e1e;border-color:#333}.dark-mode .search-input{color:#fff}.category-card--skeleton{cursor:default;min-height:52px}.category-card--skeleton:hover{transform:none;box-shadow:none;background:var(--bg-secondary);color:var(--text-primary)}.skeleton-text{height:1rem;width:60%;border-radius:4px;animation:shimmer 1.5s infinite;background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--border) 50%,var(--bg-secondary) 100%);background-size:200% 100%}.error-state{text-align:center;padding:4rem 2rem;color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;gap:1.5rem}.error-state p{font-size:1.1rem}
