*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
--gold:#C8A951;
--gold-light:#E8D48B;
--gold-dark:#9A7B2F;
--lapis:#1A3A5C;
--lapis-light:#2A5A8C;
--lapis-dark:#0F2440;
--burgundy:#6B1D2A;
--burgundy-light:#8B3040;
--cream:#FFF9F0;
--cream-dark:#F0E6D4;
--ivory:#FFFDF7;
--text-dark:#2C2C2C;
--text-medium:#5A5A5A;
--text-light:#F5F0E8;
--card-bg:#FFFFFF;
--border:#E8DCC8;
--shadow:rgba(26,58,92,0.08);
--shadow-md:rgba(26,58,92,0.12);
--radius:12px;
--radius-sm:8px;
--radius-lg:20px;
--transition:0.3s cubic-bezier(0.4,0,0.2,1);
--header-h:72px;
--container:1200px;
}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
body{
font-family:'Vazirmatn',system-ui,-apple-system,sans-serif;
background:var(--cream);
color:var(--text-dark);
line-height:1.8;
direction:rtl;
overflow-x:hidden;
}
body.nav-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:inherit;font-size:inherit}

.container{
max-width:var(--container);
margin:0 auto;
padding:0 24px;
}

.top-bar{
background:var(--lapis-dark);
color:var(--gold-light);
text-align:center;
padding:8px 16px;
font-size:0.8rem;
font-weight:500;
letter-spacing:0.02em;
}

.site-header{
position:fixed;
top:0;
left:0;
right:0;
z-index:1000;
background:rgba(255,249,240,0.92);
backdrop-filter:blur(16px);
-webkit-backdrop-filter:blur(16px);
transition:box-shadow var(--transition),background var(--transition);
border-bottom:1px solid transparent;
height:var(--header-h);
margin-top:32px;
}
.site-header.scrolled{
box-shadow:0 2px 24px var(--shadow-md);
border-bottom-color:var(--border);
margin-top:0;
}
.header-inner{
display:flex;
align-items:center;
justify-content:space-between;
height:100%;
gap:20px;
}
.logo{
display:flex;
align-items:center;
gap:10px;
flex-shrink:0;
}
.logo-icon{flex-shrink:0}
.logo-text{
font-size:1.15rem;
font-weight:700;
color:var(--lapis);
}
.main-nav{flex:1}
.nav-list{
display:flex;
align-items:center;
gap:8px;
justify-content:center;
}
.nav-link{
padding:8px 16px;
border-radius:var(--radius-sm);
font-size:0.92rem;
font-weight:500;
color:var(--text-dark);
transition:color var(--transition),background var(--transition);
white-space:nowrap;
}
.nav-link:hover,.nav-link.active{
color:var(--gold-dark);
background:rgba(200,169,81,0.1);
}
.search-toggle{
width:40px;height:40px;
display:flex;align-items:center;justify-content:center;
border-radius:50%;
color:var(--text-dark);
transition:background var(--transition);
}
.search-toggle:hover{background:rgba(200,169,81,0.12)}
.hamburger{
display:none;
flex-direction:column;
gap:5px;
width:28px;
height:28px;
justify-content:center;
padding:0;
z-index:1001;
}
.hamburger-line{
display:block;
width:100%;height:2.5px;
background:var(--text-dark);
border-radius:2px;
transition:transform var(--transition),opacity var(--transition);
}
.hamburger.active .hamburger-line:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.hamburger.active .hamburger-line:nth-child(2){opacity:0}
.hamburger.active .hamburger-line:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

.search-overlay{
position:fixed;inset:0;
background:rgba(15,36,64,0.85);
backdrop-filter:blur(8px);
z-index:2000;
display:flex;align-items:flex-start;justify-content:center;
padding-top:120px;
opacity:0;pointer-events:none;
transition:opacity 0.3s ease;
}
.search-overlay.open{opacity:1;pointer-events:all}
.search-overlay-inner{
width:100%;max-width:640px;
padding:0 24px;
}
.search-close{
position:absolute;top:24px;left:24px;
color:#fff;
width:44px;height:44px;
display:flex;align-items:center;justify-content:center;
border-radius:50%;
transition:background var(--transition);
}
.search-close:hover{background:rgba(255,255,255,0.1)}
.search-box{
display:flex;align-items:center;
background:#fff;
border-radius:var(--radius);
padding:4px 20px;
gap:12px;
box-shadow:0 8px 40px rgba(0,0,0,0.2);
}
.search-input{
flex:1;
border:none;outline:none;
padding:16px 0;
font-size:1.1rem;
background:transparent;
color:var(--text-dark);
}
.search-input::placeholder{color:#aaa}
.search-results{
margin-top:16px;
max-height:400px;
overflow-y:auto;
}
.search-result-item{
display:flex;flex-direction:column;
padding:14px 20px;
background:rgba(255,255,255,0.95);
border-radius:var(--radius-sm);
margin-bottom:6px;
cursor:pointer;
transition:background var(--transition);
}
.search-result-item:hover{background:#fff}
.search-result-type{
font-size:0.75rem;
color:var(--gold-dark);
font-weight:600;
margin-bottom:2px;
}
.search-result-title{
color:var(--text-dark);
font-size:0.95rem;
}
.search-result-title mark{
background:rgba(200,169,81,0.3);
color:inherit;
border-radius:2px;
padding:0 2px;
}
.search-no-result{
color:rgba(255,255,255,0.6);
text-align:center;
padding:24px;
font-size:0.95rem;
}

.hero{
position:relative;
min-height:100vh;
display:flex;
align-items:center;
overflow:hidden;
padding-top:calc(var(--header-h) + 32px);
}
.hero-bg{
position:absolute;inset:0;
background:linear-gradient(135deg,#0F2440 0%,#1A3A5C 40%,#2A5A8C 70%,#1A3A5C 100%);
z-index:0;
}
.hero-bg::before{
content:"";
position:absolute;inset:0;
background:url("https://picsum.photos/seed/shahnameh-hero-bg/1920/1080") center/cover no-repeat;
opacity:0.15;
mix-blend-mode:luminosity;
}
.hero-bg::after{
content:"";
position:absolute;inset:0;
background:
radial-gradient(ellipse at 80% 20%,rgba(200,169,81,0.15) 0%,transparent 50%),
radial-gradient(ellipse at 20% 80%,rgba(107,29,42,0.2) 0%,transparent 50%);
}
.hero-overlay{
position:absolute;inset:0;
background:linear-gradient(to bottom,rgba(15,36,64,0.3),rgba(15,36,64,0.6));
z-index:1;
}
.hero-content{
position:relative;z-index:2;
display:flex;
align-items:center;
gap:60px;
padding:60px 0;
}
.hero-text{
flex:1;
color:var(--text-light);
}
.hero-badge{
display:inline-block;
padding:6px 20px;
background:rgba(200,169,81,0.2);
border:1px solid rgba(200,169,81,0.4);
border-radius:40px;
font-size:0.85rem;
font-weight:500;
color:var(--gold-light);
margin-bottom:20px;
}
.hero-title{
font-size:clamp(2.5rem,6vw,4.5rem);
font-weight:900;
line-height:1.2;
margin-bottom:16px;
background:linear-gradient(135deg,#fff,var(--gold-light));
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
}
.hero-subtitle{
font-size:clamp(1rem,2vw,1.35rem);
color:var(--gold-light);
margin-bottom:20px;
font-weight:300;
letter-spacing:0.02em;
}
.hero-desc{
font-size:1.05rem;
line-height:2;
color:rgba(245,240,232,0.85);
max-width:560px;
margin-bottom:32px;
}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap}
.hero-image-wrapper{
flex-shrink:0;
width:320px;height:400px;
border-radius:var(--radius-lg);
overflow:hidden;
background:linear-gradient(135deg,var(--lapis),var(--burgundy));
box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.hero-image{
width:100%;height:100%;
object-fit:cover;
}
.hero-scroll-hint{
position:absolute;
bottom:32px;
left:50%;
transform:translateX(-50%);
z-index:2;
color:rgba(255,255,255,0.5);
animation:bounce 2s ease-in-out infinite;
}
@keyframes bounce{
0%,100%{transform:translateX(-50%) translateY(0)}
50%{transform:translateX(-50%) translateY(10px)}
}

.btn{
display:inline-flex;
align-items:center;
gap:8px;
padding:14px 32px;
border-radius:var(--radius-sm);
font-size:0.95rem;
font-weight:600;
transition:all var(--transition);
cursor:pointer;
border:2px solid transparent;
white-space:nowrap;
}
.btn-primary{
background:var(--gold);
color:var(--lapis-dark);
border-color:var(--gold);
}
.btn-primary:hover{
background:var(--gold-dark);
border-color:var(--gold-dark);
transform:translateY(-2px);
box-shadow:0 8px 24px rgba(200,169,81,0.3);
}
.btn-outline{
background:transparent;
color:#fff;
border-color:rgba(255,255,255,0.4);
}
.btn-outline:hover{
border-color:#fff;
background:rgba(255,255,255,0.1);
}
.btn-secondary{
background:var(--lapis);
color:#fff;
border-color:var(--lapis);
}
.btn-secondary:hover{
background:var(--lapis-dark);
border-color:var(--lapis-dark);
transform:translateY(-2px);
box-shadow:0 8px 24px rgba(26,58,92,0.25);
}

.section-header{
text-align:center;
margin-bottom:48px;
}
.section-tag{
display:inline-block;
padding:4px 16px;
background:rgba(200,169,81,0.12);
color:var(--gold-dark);
border-radius:40px;
font-size:0.8rem;
font-weight:600;
margin-bottom:12px;
letter-spacing:0.03em;
}
.section-title{
font-size:clamp(1.6rem,3.5vw,2.4rem);
font-weight:800;
color:var(--lapis);
margin-bottom:12px;
line-height:1.3;
}
.section-desc{
font-size:1rem;
color:var(--text-medium);
max-width:560px;
margin:0 auto;
}

.latest-posts{
padding:100px 0;
background:var(--ivory);
}
.latest-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:24px;
}
.featured-card{
grid-row:span 2;
}
.latest-card{
background:var(--card-bg);
border-radius:var(--radius);
overflow:hidden;
box-shadow:0 2px 12px var(--shadow);
transition:transform var(--transition),box-shadow var(--transition);
}
.latest-card:hover{
transform:translateY(-6px);
box-shadow:0 12px 40px var(--shadow-md);
}
.latest-card-image{
position:relative;
overflow:hidden;
aspect-ratio:16/10;
}
.featured-card .latest-card-image{
aspect-ratio:auto;
height:260px;
}
.latest-card-image img{
width:100%;height:100%;
object-fit:cover;
transition:transform 0.5s ease;
}
.latest-card:hover .latest-card-image img{transform:scale(1.05)}
.card-category{
position:absolute;
top:16px;right:16px;
padding:4px 14px;
border-radius:20px;
font-size:0.75rem;
font-weight:600;
color:#fff;
}
.cat-analysis{background:var(--lapis-light)}
.cat-difficult{background:var(--burgundy)}
.cat-all-verses{background:#6B5B1D}
.latest-card-body{padding:24px}
.card-date{
font-size:0.8rem;
color:var(--text-medium);
display:block;
margin-bottom:8px;
}
.card-title{
font-size:1.1rem;
font-weight:700;
line-height:1.6;
margin-bottom:8px;
}
.card-title a{
color:var(--text-dark);
transition:color var(--transition);
}
.card-title a:hover{color:var(--gold-dark)}
.card-excerpt{
font-size:0.9rem;
color:var(--text-medium);
line-height:1.8;
margin-bottom:12px;
}
.card-tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{
padding:3px 10px;
background:rgba(200,169,81,0.1);
color:var(--gold-dark);
border-radius:4px;
font-size:0.75rem;
font-weight:500;
}
.section-cta{
text-align:center;
margin-top:40px;
}

.blog-section{
padding:100px 0;
background:linear-gradient(180deg,var(--cream) 0%,#F5EDE0 100%);
}
.blog-toolbar{
display:flex;
justify-content:space-between;
align-items:center;
gap:20px;
margin-bottom:20px;
flex-wrap:wrap;
}
.blog-search{
display:flex;align-items:center;
background:var(--card-bg);
border:1px solid var(--border);
border-radius:var(--radius-sm);
padding:4px 16px;
gap:10px;
min-width:260px;
transition:border-color var(--transition);
}
.blog-search:focus-within{border-color:var(--gold)}
.blog-search-input{
border:none;outline:none;
padding:10px 0;
font-size:0.9rem;
background:transparent;
flex:1;
}
.blog-filters{
display:flex;gap:8px;flex-wrap:wrap;
}
.filter-btn{
padding:8px 20px;
border-radius:var(--radius-sm);
font-size:0.85rem;
font-weight:500;
color:var(--text-medium);
background:var(--card-bg);
border:1px solid var(--border);
transition:all var(--transition);
}
.filter-btn.active,.filter-btn:hover{
background:var(--lapis);
color:#fff;
border-color:var(--lapis);
}
.tag-cloud{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:8px;
margin-bottom:32px;
padding:16px 20px;
background:var(--card-bg);
border-radius:var(--radius-sm);
border:1px solid var(--border);
}
.tag-cloud-label{
font-size:0.85rem;
font-weight:600;
color:var(--text-medium);
margin-left:8px;
}
.tag-btn{
padding:4px 14px;
border-radius:20px;
font-size:0.8rem;
font-weight:500;
color:var(--text-medium);
background:rgba(200,169,81,0.08);
border:1px solid transparent;
transition:all var(--transition);
}
.tag-btn.active,.tag-btn:hover{
background:var(--gold);
color:var(--lapis-dark);
border-color:var(--gold);
}
.blog-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;
}
.blog-card{
background:var(--card-bg);
border-radius:var(--radius);
overflow:hidden;
box-shadow:0 2px 12px var(--shadow);
transition:transform var(--transition),box-shadow var(--transition);
}
.blog-card:hover{
transform:translateY(-6px);
box-shadow:0 12px 40px var(--shadow-md);
}
.blog-card-image{
position:relative;
overflow:hidden;
aspect-ratio:3/2;
}
.blog-card-image img{
width:100%;height:100%;
object-fit:cover;
transition:transform 0.5s ease;
}
.blog-card:hover .blog-card-image img{transform:scale(1.05)}
.blog-card-body{padding:24px}
.blog-pagination{
display:flex;
justify-content:center;
gap:8px;
margin-top:40px;
}
.page-btn{
width:40px;height:40px;
display:flex;align-items:center;justify-content:center;
border-radius:var(--radius-sm);
font-size:0.9rem;
font-weight:600;
color:var(--text-medium);
background:var(--card-bg);
border:1px solid var(--border);
transition:all var(--transition);
}
.page-btn.active,.page-btn:hover{
background:var(--lapis);
color:#fff;
border-color:var(--lapis);
}
.blog-no-results{
display:flex;
flex-direction:column;
align-items:center;
gap:12px;
padding:60px 20px;
color:var(--text-medium);
font-size:0.95rem;
}

.blog-detail-section{
padding:80px 0 100px;
background:var(--ivory);
}
.blog-detail{
max-width:800px;
margin:0 auto;
background:var(--card-bg);
border-radius:var(--radius-lg);
overflow:hidden;
box-shadow:0 4px 24px var(--shadow);
}
.blog-detail-header{
padding:48px 48px 32px;
border-bottom:1px solid var(--border);
}
.blog-detail-title{
font-size:clamp(1.4rem,3vw,2rem);
font-weight:800;
color:var(--lapis);
margin:16px 0;
line-height:1.5;
}
.blog-detail-meta{
display:flex;
align-items:center;
gap:12px;
font-size:0.85rem;
color:var(--text-medium);
flex-wrap:wrap;
}
.meta-sep{color:var(--border)}
.blog-detail-body{
padding:40px 48px;
}
.blog-detail-body h3{
font-size:1.25rem;
font-weight:700;
color:var(--lapis);
margin:32px 0 16px;
}
.blog-detail-body p{
margin-bottom:20px;
line-height:2;
color:var(--text-dark);
}
.blog-detail-body .lead{
font-size:1.05rem;
font-weight:500;
color:var(--lapis);
line-height:2;
border-right:4px solid var(--gold);
padding-right:20px;
margin-bottom:28px;
}
.verse-block{
background:linear-gradient(135deg,rgba(26,58,92,0.04),rgba(200,169,81,0.06));
border:1px solid var(--border);
border-radius:var(--radius-sm);
padding:28px 32px;
margin:24px 0;
}
.verse{
display:flex;
justify-content:center;
gap:40px;
padding:8px 0;
flex-wrap:wrap;
}
.hemistich{
font-size:1.1rem;
font-weight:500;
color:var(--lapis);
text-align:center;
min-width:180px;
}
.verse-meaning{
background:rgba(200,169,81,0.08);
border-radius:var(--radius-sm);
padding:16px 20px;
margin:8px 0 24px;
font-size:0.92rem;
line-height:2;
}
.verse-meaning strong{color:var(--gold-dark)}
.blog-detail-share{
display:flex;
align-items:center;
gap:12px;
padding:24px 48px;
border-top:1px solid var(--border);
}
.share-label{
font-size:0.9rem;
font-weight:600;
color:var(--text-medium);
}
.share-btn{
width:40px;height:40px;
display:flex;align-items:center;justify-content:center;
border-radius:50%;
background:rgba(26,58,92,0.06);
color:var(--lapis);
transition:all var(--transition);
}
.share-btn:hover{
background:var(--lapis);
color:#fff;
}
.related-posts{
padding:40px 48px;
background:rgba(200,169,81,0.04);
}
.related-title{
font-size:1.1rem;
font-weight:700;
color:var(--lapis);
margin-bottom:20px;
}
.related-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:16px;
}
.related-card{
border-radius:var(--radius-sm);
overflow:hidden;
background:var(--card-bg);
box-shadow:0 2px 8px var(--shadow);
transition:transform var(--transition);
}
.related-card:hover{transform:translateY(-3px)}
.related-card-image{
aspect-ratio:3/2;
overflow:hidden;
}
.related-card-image img{width:100%;height:100%;object-fit:cover}
.related-card-title{
display:block;
padding:12px 16px;
font-size:0.82rem;
font-weight:600;
color:var(--text-dark);
line-height:1.6;
}

.gallery-section{
padding:100px 0;
background:linear-gradient(180deg,var(--lapis-dark) 0%,#0F2440 100%);
color:var(--text-light);
}
.gallery-section .section-tag{
background:rgba(200,169,81,0.2);
color:var(--gold-light);
}
.gallery-section .section-title{color:var(--gold-light)}
.gallery-section .section-desc{color:rgba(245,240,232,0.7)}
.gallery-filters{
display:flex;
justify-content:center;
gap:8px;
margin-bottom:40px;
flex-wrap:wrap;
}
.gallery-section .filter-btn{
background:rgba(255,255,255,0.06);
border-color:rgba(255,255,255,0.15);
color:rgba(255,255,255,0.7);
}
.gallery-section .filter-btn.active,.gallery-section .filter-btn:hover{
background:var(--gold);
border-color:var(--gold);
color:var(--lapis-dark);
}
.gallery-grid{
columns:4;
column-gap:16px;
}
.gallery-item{
break-inside:avoid;
margin-bottom:16px;
border-radius:var(--radius);
overflow:hidden;
cursor:pointer;
position:relative;
}
.gallery-item-inner{
border-radius:var(--radius);
overflow:hidden;
position:relative;
}
.gallery-item-inner img{
width:100%;
display:block;
transition:transform 0.5s ease;
}
.gallery-item:hover .gallery-item-inner img{transform:scale(1.05)}
.gallery-item-overlay{
position:absolute;
bottom:0;left:0;right:0;
padding:32px 20px 20px;
background:linear-gradient(to top,rgba(0,0,0,0.8),transparent);
opacity:0;
transition:opacity var(--transition);
}
.gallery-item:hover .gallery-item-overlay,.gallery-item:focus .gallery-item-overlay{opacity:1}
.gallery-item-title{
font-size:0.95rem;
font-weight:700;
color:#fff;
margin-bottom:4px;
}
.gallery-item-desc{
font-size:0.8rem;
color:rgba(255,255,255,0.7);
}

.artwork-detail-section{
padding:80px 0;
background:var(--cream);
}
.artwork-detail{
display:grid;
grid-template-columns:1.2fr 1fr;
gap:48px;
align-items:start;
}
.artwork-detail-image{
border-radius:var(--radius-lg);
overflow:hidden;
box-shadow:0 8px 40px var(--shadow-md);
}
.artwork-detail-image img{width:100%;display:block}
.artwork-detail-title{
font-size:1.6rem;
font-weight:800;
color:var(--lapis);
margin-bottom:24px;
}
.artwork-meta-list{
margin-bottom:24px;
}
.artwork-meta-item{
display:flex;
gap:12px;
padding:10px 0;
border-bottom:1px solid var(--border);
}
.artwork-meta-item dt{
font-weight:600;
color:var(--text-medium);
min-width:80px;
font-size:0.9rem;
}
.artwork-meta-item dd{
color:var(--text-dark);
font-size:0.9rem;
}
.artwork-description{
font-size:0.95rem;
line-height:2;
color:var(--text-dark);
margin-bottom:32px;
}
.artwork-nav{
display:flex;
justify-content:space-between;
}
.artwork-nav-link{
display:inline-flex;
align-items:center;
gap:8px;
padding:10px 20px;
border-radius:var(--radius-sm);
font-size:0.9rem;
font-weight:500;
color:var(--lapis);
border:1px solid var(--border);
transition:all var(--transition);
}
.artwork-nav-link:hover{
border-color:var(--lapis);
background:rgba(26,58,92,0.04);
}

.infographics-section{
padding:100px 0;
background:linear-gradient(180deg,#F5EDE0 0%,var(--cream) 100%);
}
.infographic-cards{
display:flex;
flex-direction:column;
gap:48px;
}
.infographic-card{
background:var(--card-bg);
border-radius:var(--radius-lg);
overflow:hidden;
box-shadow:0 4px 24px var(--shadow);
padding:40px;
}
.infographic-title{
font-size:1.3rem;
font-weight:800;
color:var(--lapis);
margin-bottom:12px;
}
.infographic-desc{
font-size:0.95rem;
color:var(--text-medium);
line-height:1.8;
margin-bottom:24px;
max-width:700px;
}
.infographic-viewer{
position:relative;
border-radius:var(--radius);
overflow:hidden;
border:1px solid var(--border);
background:#f5f0e8;
}
.pan-zoom-container{
overflow:hidden;
cursor:grab;
min-height:300px;
display:flex;
align-items:center;
justify-content:center;
}
.pan-zoom-container img{
transform-origin:center center;
transition:transform 0.1s ease-out;
max-height:500px;
width:100%;
object-fit:contain;
}
.panzoom-controls{
position:absolute;
bottom:16px;left:16px;
display:flex;
gap:6px;
z-index:10;
}
.pz-btn{
width:38px;height:38px;
display:flex;align-items:center;justify-content:center;
background:var(--card-bg);
border:1px solid var(--border);
border-radius:var(--radius-sm);
color:var(--text-dark);
box-shadow:0 2px 8px var(--shadow);
transition:all var(--transition);
}
.pz-btn:hover{
background:var(--lapis);
color:#fff;
border-color:var(--lapis);
}

.faq-section{
padding:100px 0;
background:var(--ivory);
}
.faq-search{
display:flex;align-items:center;
background:var(--card-bg);
border:1px solid var(--border);
border-radius:var(--radius-sm);
padding:4px 16px;
gap:10px;
max-width:480px;
margin:0 auto 24px;
transition:border-color var(--transition);
}
.faq-search:focus-within{border-color:var(--gold)}
.faq-search-input{
flex:1;
border:none;outline:none;
padding:10px 0;
font-size:0.9rem;
background:transparent;
}
.faq-categories{
display:flex;
justify-content:center;
gap:8px;
margin-bottom:32px;
flex-wrap:wrap;
}
.faq-cat-btn{
padding:8px 20px;
border-radius:var(--radius-sm);
font-size:0.85rem;
font-weight:500;
color:var(--text-medium);
background:var(--card-bg);
border:1px solid var(--border);
transition:all var(--transition);
}
.faq-cat-btn.active,.faq-cat-btn:hover{
background:var(--gold);
color:var(--lapis-dark);
border-color:var(--gold);
}
.faq-list{
max-width:800px;
margin:0 auto;
display:flex;
flex-direction:column;
gap:12px;
}
.faq-item{
background:var(--card-bg);
border-radius:var(--radius);
border:1px solid var(--border);
overflow:hidden;
transition:box-shadow var(--transition);
}
.faq-item:hover{box-shadow:0 4px 16px var(--shadow)}
.faq-question{
width:100%;
display:flex;
align-items:center;
justify-content:space-between;
padding:20px 24px;
font-size:0.95rem;
font-weight:600;
color:var(--text-dark);
text-align:right;
gap:16px;
transition:color var(--transition);
}
.faq-question:hover{color:var(--gold-dark)}
.faq-arrow{
flex-shrink:0;
transition:transform var(--transition);
}
.faq-item.open .faq-arrow{transform:rotate(180deg)}
.faq-answer{
max-height:0;
overflow:hidden;
transition:max-height 0.4s ease,padding 0.3s ease;
}
.faq-item.open .faq-answer{
max-height:600px;
}
.faq-answer p{
padding:0 24px 24px;
font-size:0.92rem;
line-height:2;
color:var(--text-medium);
}

.contact-section{
padding:100px 0;
background:linear-gradient(135deg,var(--lapis-dark),var(--lapis));
color:var(--text-light);
}
.contact-wrapper{
display:grid;
grid-template-columns:1fr 1fr;
gap:60px;
align-items:center;
}
.contact-title{
font-size:clamp(1.6rem,3vw,2.2rem);
font-weight:800;
color:var(--gold-light);
margin-bottom:16px;
}
.contact-desc{
font-size:1rem;
line-height:2;
color:rgba(245,240,232,0.8);
margin-bottom:32px;
}
.contact-verse{
padding:20px 24px;
background:rgba(200,169,81,0.1);
border:1px solid rgba(200,169,81,0.2);
border-radius:var(--radius-sm);
}
.contact-verse .hemistich{
color:var(--gold-light);
font-size:1rem;
}
.contact-form{
background:rgba(255,255,255,0.05);
border:1px solid rgba(255,255,255,0.1);
border-radius:var(--radius-lg);
padding:40px;
backdrop-filter:blur(8px);
}
.form-group{margin-bottom:20px}
.form-label{
display:block;
font-size:0.85rem;
font-weight:600;
margin-bottom:8px;
color:rgba(245,240,232,0.9);
}
.form-input{
width:100%;
padding:12px 16px;
border:1px solid rgba(255,255,255,0.15);
border-radius:var(--radius-sm);
background:rgba(255,255,255,0.06);
color:#fff;
font-size:0.95rem;
transition:border-color var(--transition),background var(--transition);
outline:none;
}
.form-input::placeholder{color:rgba(255,255,255,0.3)}
.form-input:focus{
border-color:var(--gold);
background:rgba(255,255,255,0.1);
}
.form-input.error{border-color:#E74C3C}
.form-select{
appearance:none;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23aaa' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
background-repeat:no-repeat;
background-position:left 16px center;
}
.form-select option{color:var(--text-dark);background:#fff}
.form-textarea{resize:vertical;min-height:120px}
.form-error{
display:block;
font-size:0.78rem;
color:#E74C3C;
margin-top:4px;
min-height:18px;
}
.btn-submit{
width:100%;
justify-content:center;
margin-top:8px;
}
.btn-loading{
display:inline-flex;
align-items:center;
}
.spinner{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.form-success{
display:flex;
flex-direction:column;
align-items:center;
gap:16px;
text-align:center;
padding:48px 24px;
color:rgba(245,240,232,0.9);
font-size:0.95rem;
line-height:1.8;
}

.resume-section{
padding:100px 0;
background:var(--cream);
}
.resume-intro{
display:grid;
grid-template-columns:280px 1fr;
gap:48px;
margin-bottom:80px;
align-items:start;
}
.resume-photo-wrapper{
border-radius:var(--radius-lg);
overflow:hidden;
box-shadow:0 8px 40px var(--shadow-md);
aspect-ratio:1;
}
.resume-photo{
width:100%;height:100%;
object-fit:cover;
}
.resume-bio h3{
font-size:1.3rem;
font-weight:700;
color:var(--lapis);
margin-bottom:16px;
}
.resume-bio p{
font-size:0.95rem;
line-height:2;
color:var(--text-dark);
margin-bottom:16px;
}
.resume-stats{
display:flex;
gap:32px;
margin:28px 0;
padding:24px 0;
border-top:1px solid var(--border);
border-bottom:1px solid var(--border);
}
.stat-item{
display:flex;
flex-direction:column;
align-items:center;
}
.stat-number{
font-size:1.8rem;
font-weight:900;
color:var(--gold-dark);
line-height:1.2;
}
.stat-label{
font-size:0.82rem;
color:var(--text-medium);
font-weight:500;
}
.resume-download-btn{
display:inline-flex;
align-items:center;
gap:8px;
}

.timeline{
position:relative;
max-width:800px;
margin:0 auto;
}
.timeline-heading{
text-align:center;
font-size:1.3rem;
font-weight:700;
color:var(--lapis);
margin-bottom:48px;
}
.timeline-line{
position:absolute;
top:80px;
bottom:0;
right:50%;
transform:translateX(50%);
width:2px;
background:linear-gradient(to bottom,var(--gold),var(--border));
}
.timeline-item{
position:relative;
display:flex;
margin-bottom:40px;
}
.timeline-item[data-side="right"]{
justify-content:flex-start;
padding-left:calc(50% + 32px);
}
.timeline-item[data-side="left"]{
justify-content:flex-end;
padding-right:calc(50% + 32px);
}
.timeline-dot{
position:absolute;
right:50%;
transform:translateX(50%);
top:24px;
width:16px;height:16px;
border-radius:50%;
background:var(--gold);
border:3px solid var(--cream);
box-shadow:0 0 0 2px var(--gold);
z-index:1;
}
.timeline-content{
background:var(--card-bg);
border-radius:var(--radius);
padding:24px;
box-shadow:0 2px 12px var(--shadow);
max-width:340px;
width:100%;
}
.timeline-date{
display:inline-block;
padding:3px 12px;
background:rgba(200,169,81,0.12);
color:var(--gold-dark);
border-radius:4px;
font-size:0.78rem;
font-weight:600;
margin-bottom:8px;
}
.timeline-title{
font-size:0.95rem;
font-weight:700;
color:var(--lapis);
margin-bottom:8px;
line-height:1.6;
}
.timeline-desc{
font-size:0.85rem;
color:var(--text-medium);
line-height:1.8;
}

.site-footer{
background:var(--lapis-dark);
color:rgba(245,240,232,0.8);
padding:60px 0 0;
}
.footer-grid{
display:grid;
grid-template-columns:1.5fr 1fr 1fr 1fr;
gap:40px;
margin-bottom:48px;
}
.footer-logo{
display:inline-flex;
align-items:center;
gap:10px;
margin-bottom:16px;
color:var(--gold-light);
font-size:1.1rem;
font-weight:700;
}
.footer-desc{
font-size:0.88rem;
line-height:1.8;
color:rgba(245,240,232,0.6);
}
.footer-heading{
font-size:0.95rem;
font-weight:700;
color:var(--gold-light);
margin-bottom:20px;
}
.footer-links li{margin-bottom:10px}
.footer-links a{
font-size:0.88rem;
color:rgba(245,240,232,0.6);
transition:color var(--transition);
}
.footer-links a:hover{color:var(--gold-light)}
.footer-social{
display:flex;
gap:10px;
}
.social-link{
width:40px;height:40px;
display:flex;align-items:center;justify-content:center;
border-radius:50%;
background:rgba(255,255,255,0.06);
color:rgba(245,240,232,0.7);
transition:all var(--transition);
}
.social-link:hover{
background:var(--gold);
color:var(--lapis-dark);
}
.footer-verse{
padding:32px 0;
border-top:1px solid rgba(255,255,255,0.08);
text-align:center;
}
.footer-verse .hemistich{
color:var(--gold);
font-size:1rem;
}
.footer-bottom{
padding:20px 0;
border-top:1px solid rgba(255,255,255,0.08);
text-align:center;
font-size:0.82rem;
color:rgba(245,240,232,0.4);
}

.lightbox{
position:fixed;inset:0;
z-index:3000;
background:rgba(0,0,0,0.92);
display:flex;
align-items:center;
justify-content:center;
backdrop-filter:blur(4px);
}
.lightbox-close{
position:absolute;top:20px;left:20px;
color:#fff;
width:48px;height:48px;
display:flex;align-items:center;justify-content:center;
border-radius:50%;
transition:background var(--transition);
z-index:10;
}
.lightbox-close:hover{background:rgba(255,255,255,0.1)}
.lightbox-prev,.lightbox-next{
position:absolute;
top:50%;
transform:translateY(-50%);
color:#fff;
width:48px;height:48px;
display:flex;align-items:center;justify-content:center;
border-radius:50%;
background:rgba(255,255,255,0.1);
transition:background var(--transition);
z-index:10;
}
.lightbox-prev:hover,.lightbox-next:hover{background:rgba(255,255,255,0.2)}
.lightbox-prev{right:20px}
.lightbox-next{left:20px}
.lightbox-content{
max-width:90vw;
max-height:85vh;
display:flex;
flex-direction:column;
align-items:center;
}
.lightbox-image{
max-width:100%;
max-height:78vh;
object-fit:contain;
border-radius:var(--radius-sm);
}
.lightbox-caption{
margin-top:16px;
color:rgba(255,255,255,0.7);
font-size:0.9rem;
text-align:center;
}

.reveal{
opacity:0;
transform:translateY(30px);
transition:opacity 0.6s ease,transform 0.6s ease;
}
.reveal.visible{
opacity:1;
transform:translateY(0);
}

@media(max-width:1024px){
.latest-grid{grid-template-columns:1fr}
.featured-card{grid-row:auto}
.featured-card .latest-card-image{height:220px}
.blog-grid{grid-template-columns:repeat(2,1fr)}
.gallery-grid{columns:3}
.artwork-detail{grid-template-columns:1fr;gap:32px}
.resume-intro{grid-template-columns:200px 1fr;gap:32px}
.footer-grid{grid-template-columns:1fr 1fr;gap:24px}
.contact-wrapper{grid-template-columns:1fr;gap:40px}
.timeline-line{right:24px;transform:none}
.timeline-item[data-side="right"],
.timeline-item[data-side="left"]{
justify-content:flex-start;
padding-right:56px;
padding-left:0;
}
.timeline-dot{
right:24px;
transform:translateX(50%);
}
.timeline-content{max-width:100%}
.related-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:768px){
:root{--header-h:60px}
.top-bar{font-size:0.72rem;padding:6px 12px}
.hamburger{display:flex}
.main-nav{
position:fixed;
top:0;right:0;bottom:0;
width:280px;
background:var(--cream);
box-shadow:-4px 0 24px rgba(0,0,0,0.15);
transform:translateX(100%);
transition:transform 0.35s ease;
z-index:1000;
padding:calc(var(--header-h) + 40px) 32px 32px;
}
.main-nav.open{transform:translateX(0)}
.nav-list{
flex-direction:column;
align-items:stretch;
gap:4px;
}
.nav-link{
padding:14px 16px;
font-size:1rem;
border-radius:var(--radius-sm);
}
.search-toggle{display:none}
.logo-text{font-size:1rem}
.hero-content{
flex-direction:column-reverse;
text-align:center;
gap:32px;
padding:40px 0;
}
.hero-image-wrapper{
width:180px;height:220px;
}
.hero-desc{margin:0 auto 28px}
.hero-cta{justify-content:center}
.hero-badge{font-size:0.78rem}
.blog-toolbar{
flex-direction:column;
align-items:stretch;
}
.blog-search{min-width:0;width:100%}
.blog-grid{grid-template-columns:1fr}
.gallery-grid{columns:2}
.related-grid{grid-template-columns:1fr}
.blog-detail-header{padding:28px 24px 20px}
.blog-detail-body{padding:24px}
.blog-detail-share{padding:20px 24px}
.related-posts{padding:24px}
.blog-detail-title{font-size:1.3rem}
.verse{flex-direction:column;gap:8px}
.hemistich{min-width:0}
.resume-intro{
grid-template-columns:1fr;
text-align:center;
}
.resume-photo-wrapper{
max-width:200px;
margin:0 auto;
}
.resume-stats{justify-content:center}
.contact-form{padding:28px 20px}
.infographic-card{padding:24px}
.footer-grid{grid-template-columns:1fr}
.footer-about{text-align:center}
.footer-social{justify-content:center}
}

@media(max-width:480px){
.container{padding:0 16px}
.hero-title{font-size:2rem}
.section-title{font-size:1.4rem}
.gallery-grid{columns:1}
.faq-question{padding:16px;font-size:0.88rem}
.faq-answer p{padding:0 16px 20px}
.tag-cloud{padding:12px}
.blog-filters{gap:4px}
.filter-btn{padding:6px 14px;font-size:0.8rem}
.btn{padding:12px 24px;font-size:0.88rem}
.resume-stats{gap:20px}
.stat-number{font-size:1.4rem}
.infographic-card{padding:16px}
.verse-block{padding:20px 16px}
.hero-image-wrapper{width:140px;height:180px}
}

@media(min-width:1440px){
:root{--container:1320px}
.gallery-grid{columns:5}
}

@media print{
.site-header,.top-bar,.hero-scroll-hint,.hamburger,.search-toggle,.lightbox,.panzoom-controls{display:none !important}
body{font-size:12pt;line-height:1.6;color:#000;background:#fff}
.hero{min-height:auto;padding:40px 0}
.hero-bg,.hero-overlay{display:none}
.hero-content{color:#000}
.hero-title{-webkit-text-fill-color:#000;color:#000}
section{padding:40px 0;page-break-inside:avoid}
}

@media(prefers-reduced-motion:reduce){
*,*::before,*::after{
animation-duration:0.01ms !important;
transition-duration:0.01ms !important;
}
.reveal{opacity:1;transform:none}
html{scroll-behavior:auto}
}
