*{margin:0;padding:0;box-sizing:border-box}
:root{
  --primary:#2c5f55;
  --primary-dark:#1a3d36;
  --accent:#ff6b9d;
  --bg-main:#f8f9fa;
  --bg-card:#fff;
  --text:#2c3e50;
  --text-light:#6c757d;
  --border:#e9ecef;
  --shadow-sm:0 2px 4px rgba(0,0,0,0.06);
  --shadow-md:0 4px 12px rgba(0,0,0,0.1);
  --shadow-lg:0 8px 24px rgba(0,0,0,0.12);
  --radius:8px;
  --transition:all .3s cubic-bezier(0.4,0,0.2,1)
}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;
  font-size:16px;line-height:1.6;color:var(--text);background:var(--bg-main);
  -webkit-font-smoothing:antialiased
}
.header{
  position:fixed;top:0;width:100%;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  box-shadow:var(--shadow-md);z-index:1000;backdrop-filter:blur(10px)
}
.header-inner{
  max-width:1600px;margin:0 auto;padding:0 20px;
  display:flex;align-items:center;justify-content:space-between;height:60px
}
.logo{
  font-size:24px;font-weight:700;color:#fff;text-decoration:none;transition:var(--transition)
}
.logo:hover{transform:translateX(5px);color:var(--accent)}
.nav{display:flex;gap:5px}
.nav a{
  color:#fff;text-decoration:none;padding:8px 16px;border-radius:var(--radius);
  transition:var(--transition);font-weight:500
}
.nav a:hover{background:rgba(255,255,255,.15);transform:translateY(-2px)}
.mobile-actions{display:none}
.mobile-toggle{
  display:none;background:none;border:none;color:#fff;font-size:24px;
  cursor:pointer;padding:8px
}
.search-container{position:relative;margin-left:20px}
.search-input{
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);
  border-radius:24px;padding:8px 40px 8px 16px;color:#fff;width:250px;transition:var(--transition)
}
.search-input::placeholder{color:rgba(255,255,255,.7)}
.search-input:focus{outline:none;background:rgba(255,255,255,.25);width:300px}
.search-btn{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  border:0;color:#fff;cursor:pointer;padding:12px;width:18px;height:18px;
  vertical-align:middle;background:url('/img/search.png') no-repeat center center;
  background-size:contain
}
.mobile-search{
  display:none;background:none;border:0;color:#fff;cursor:pointer;
  font-size:20px;padding:6px;margin-left:8px
}
.main{max-width:1600px;margin:80px auto 20px;padding:0 20px}
.page-header{
  background:var(--bg-card);border-radius:var(--radius);
  padding:15px;margin-bottom:24px;box-shadow:var(--shadow-sm)
}
.page-header h1{font-size:26px;font-weight:700;color:var(--primary)}
.section{
  background:var(--bg-card);border-radius:var(--radius);
  padding:16px;margin-bottom:24px;box-shadow:var(--shadow-sm);
  transition:var(--transition)
}
.section:hover{box-shadow:var(--shadow-md)}
.section p{padding:8px}
.section-title{
  font-size:20px;font-weight:600;color:var(--primary);
  margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--border)
}
.categories{
  display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px
}
.category-link{
  display:inline-flex;align-items:center;padding:10px 20px;
  background:var(--bg-card);color:var(--text);text-decoration:none;
  border-radius:24px;box-shadow:var(--shadow-sm);transition:var(--transition);
  font-weight:500
}
.category-link:hover{
  background:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)
}
.category-link.active{background:var(--primary);color:#fff}
.gallery{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:20px;margin-top:24px
}
.gallery-item{
  position:relative;border-radius:var(--radius);overflow:hidden;
  background:var(--bg-card);box-shadow:var(--shadow-sm);transition:var(--transition)
}
.gallery-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.gallery-item img{
  width:100%;height:420px;object-fit:cover;transition:var(--transition)
}
.gallery-item-title{
  position:absolute;bottom:0;left:0;right:0;padding:12px;
  background:linear-gradient(to top,rgba(0,0,0,.8),transparent);
  color:#fff;font-weight:500
}
.gallery-item:hover .gallery-item-title{transform:translateY(0)}
.footer{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;padding:40px 20px 20px;margin-top:60px
}
.footer-inner{max-width:1600px;margin:0 auto;text-align:center}
.footer-links{
  display:flex;justify-content:center;flex-wrap:wrap;gap:24px;margin-bottom:20px
}
.footer-links a{color:#fff;text-decoration:none;transition:var(--transition)}
.footer-links a:hover{color:var(--accent)}
@media(max-width:768px){
  .header-inner{height:56px}
  .nav{
    position:fixed;top:56px;left:-100%;width:100%;
    background:var(--primary-dark);flex-direction:column;padding:20px;
    transition:var(--transition)
  }
  .nav.active{left:0}
  .mobile-toggle{display:block}
  .mobile-actions{display:flex;align-items:center;gap:15px}
  .mobile-search,.mobile-toggle{margin-left:0}
  .mobile-search{
    display:inline-block;width:24px;height:24px;vertical-align:middle;
    margin-top:2px;background:url('/img/search.png') no-repeat center center;
    background-size:contain
  }
  .search-container{
    position:fixed;left:0;right:0;top:var(--header-h,56px);
    margin:0;padding:8px;background:var(--primary-dark);
    backdrop-filter:saturate(120%) blur(6px);
    transform:translateY(-110%);opacity:0;pointer-events:none;
    transition:transform .25s ease,opacity .25s ease;z-index:1000
  }
  body.search-open .search-container{transform:translateY(0);opacity:1;pointer-events:auto}
  .search-input{width:100%;font-size:16px;padding:12px 44px 12px 14px;border-radius:16px}
  .search-input:focus{width:100%}
  .search-btn{right:18px}
  .header .search-container{margin-left:0}
  .page-header h1{font-size:24px}
  .gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px}
  .gallery-item img{height:250px}
  .section{padding:8px}
  .main{margin-top:70px}
  .nav-links{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:12px;scrollbar-width:none}
  .nav-links::-webkit-scrollbar{display:none}
  .category-link{flex:0 0 auto}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
.lazy-image{
  background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);
  background-size:200% 100%;animation:loading 1.5s infinite
}
@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:var(--bg-main)}
::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}