/* ==================== Design Tokens & Reset ==================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
    --red:#8B1E1E;--red-light:#A83232;--red-dark:#6B1515;
    --gold:#C8A45C;--gold-light:#D4B96A;
    --dark:#141414;--dark2:#1E1E1E;
    --cream:#F5F0E8;--cream2:#EDE6D8;
    --brown:#4A3728;--brown-light:#6B5340;
    --white:#FFF;--gray:#888;
    --font-serif:'Noto Serif SC','STSong','SimSun','Songti SC','KaiTi',serif;
    --font-sans:'PingFang SC','Microsoft YaHei','Hiragino Sans GB',sans-serif;
    --shadow-sm:0 2px 12px rgba(0,0,0,0.05);
    --shadow-md:0 4px 24px rgba(0,0,0,0.07);
    --radius:8px;--radius-sm:4px;
}
html{background:var(--dark)}
body{
    font-family:var(--font-sans);background:var(--cream);color:var(--dark);
    line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
::selection{background:var(--red);color:var(--cream)}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:700}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
ul{list-style:none}
strong{color:var(--red);font-weight:600}

/* ==================== Navigation ==================== */
.nav{
    position:fixed;top:0;left:0;right:0;z-index:1000;height:68px;
    padding:0 clamp(20px,5vw,56px);
    display:flex;align-items:center;justify-content:space-between;
    background:rgba(20,20,20,0.92);
    backdrop-filter:blur(18px) saturate(160%);
    border-bottom:1px solid rgba(200,164,92,0.08);
}
.nav-brand{display:flex;align-items:center;gap:12px}
.nav-seal{
    width:40px;height:40px;border-radius:6px;
    background:linear-gradient(135deg,var(--red),var(--red-dark));
    display:flex;align-items:center;justify-content:center;
    color:var(--gold);font-size:20px;font-weight:700;
    box-shadow:0 2px 8px rgba(139,30,30,0.25);
}
.nav-brand .brand-title{font-size:17px;color:var(--gold);font-weight:700;line-height:1.2}
.nav-brand p{font-size:10px;color:rgba(245,240,232,0.35);letter-spacing:3px}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links a{font-size:13px;color:rgba(245,240,232,0.7);letter-spacing:1.5px;padding:6px 0;position:relative;transition:color 0.25s}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1.5px;background:var(--gold);transition:width 0.25s}
.nav-links a:hover,.nav-links a.active{color:var(--gold)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--cream)}

/* ==================== Hero ==================== */
.hero{
    position:relative;height:100vh;display:flex;align-items:center;justify-content:center;
    overflow:hidden;background:var(--dark);
}
.hero-bg{
    position:absolute;inset:0;z-index:0;
    background:radial-gradient(ellipse at 50% 40%,#2a1a1a 0%,var(--dark) 45%,#0a0a0a 100%);
}
.hero-glow{
    position:absolute;width:800px;height:800px;
    background:radial-gradient(circle,rgba(200,164,92,0.05),transparent 65%);
    top:45%;left:50%;transform:translate(-50%,-50%);z-index:1;
}
.hero-ct{position:relative;z-index:2;text-align:center;padding:0 24px;max-width:880px}
.hero-badge{
    display:inline-block;padding:6px 36px;margin-bottom:36px;
    border:1px solid rgba(200,164,92,0.2);color:var(--gold);
    font-size:13px;letter-spacing:10px;position:relative;
    opacity:0;transform:translateY(20px);transition:opacity 0.5s 0.1s,transform 0.5s 0.1s;
}
.hero-badge::before,.hero-badge::after{
    content:'';position:absolute;top:50%;width:5px;height:5px;
    background:var(--gold);border-radius:50%;opacity:0.45;transform:translateY(-50%);
}
.hero-badge::before{left:12px}.hero-badge::after{right:12px}
.hero-title{
    font-size:clamp(52px,11vw,96px);font-weight:900;
    color:var(--cream);letter-spacing:clamp(8px,2vw,16px);line-height:1.1;
    text-shadow:0 2px 40px rgba(0,0,0,0.5);
    opacity:0;transform:translateY(20px);transition:opacity 0.5s 0.2s,transform 0.5s 0.2s;
}
.hero-sub{
    font-size:clamp(17px,2.8vw,28px);
    color:rgba(200,164,92,0.65);letter-spacing:10px;margin:24px 0 20px;
    font-family:var(--font-serif);
    opacity:0;transform:translateY(20px);transition:opacity 0.5s 0.3s,transform 0.5s 0.3s;
}
.hero-desc{
    font-size:clamp(14px,1.5vw,16px);color:rgba(245,240,232,0.4);
    max-width:540px;margin:0 auto 48px;line-height:2.2;
    opacity:0;transform:translateY(20px);transition:opacity 0.5s 0.4s,transform 0.5s 0.4s;
}
.hero-btns{
    display:flex;gap:16px;justify-content:center;flex-wrap:wrap;
    opacity:0;transform:translateY(20px);transition:opacity 0.5s 0.5s,transform 0.5s 0.5s;
}
.hero.in .hero-badge,.hero.in .hero-title,.hero.in .hero-sub,
.hero.in .hero-desc,.hero.in .hero-btns{opacity:1;transform:translateY(0)}
.btn-red{
    display:inline-block;padding:13px 38px;background:var(--red);color:var(--cream);
    border:2px solid var(--red);font-size:14px;letter-spacing:4px;
    border-radius:var(--radius-sm);transition:background 0.25s,color 0.25s;
}
.btn-red:hover{background:transparent;color:var(--red)}
.btn-gold{
    display:inline-block;padding:13px 38px;color:var(--gold);
    border:2px solid var(--gold);font-size:14px;letter-spacing:4px;
    border-radius:var(--radius-sm);background:transparent;transition:background 0.25s,color 0.25s;
}
.btn-gold:hover{background:var(--gold);color:var(--dark)}
.hero-scroll{
    position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:2;
    opacity:0;transition:opacity 0.5s 0.8s;
}
.hero.in .hero-scroll{opacity:1}
.hero-scroll svg{width:20px;height:20px;color:rgba(200,164,92,0.3)}

/* ==================== Section Common ==================== */
.sec{padding:clamp(60px,10vw,104px) clamp(20px,5vw,56px)}
.sec>.inr{max-width:1200px;margin:0 auto}
.sec-dark{background:var(--dark);color:var(--cream);position:relative}
.sec-dark::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,rgba(200,164,92,0.18),transparent)}
.sec-tag{display:inline-block;font-size:14px;color:rgba(200,164,92,0.7);letter-spacing:8px;margin-bottom:12px;font-weight:600}
.sec-tag::before,.sec-tag::after{content:'◆';font-size:7px;margin:0 10px;color:var(--gold);opacity:0.5;vertical-align:middle}
.sec-dark .sec-tag{color:rgba(200,164,92,0.5)}
.sec-title{font-size:clamp(32px,4.5vw,44px);font-weight:700;margin-bottom:16px;letter-spacing:4px;line-height:1.3}
.sec-title .hl{color:var(--red)}
.sec-dark .sec-title .hl{background:linear-gradient(135deg,var(--gold),#e6c974);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.divider{width:64px;height:3px;background:linear-gradient(to right,var(--red),var(--red-light));margin:20px 0;border-radius:2px;position:relative}
.divider::after{content:'';position:absolute;bottom:-4px;left:0;width:32px;height:1px;background:var(--gold);opacity:0.45;border-radius:1px}

/* ==================== Image Placeholder ==================== */
.img-ph{
    width:100%;height:100%;min-height:200px;
    background:linear-gradient(135deg,var(--brown-light),var(--brown));
    display:flex;align-items:center;justify-content:center;
    position:relative;overflow:hidden;border-radius:var(--radius);
}
.img-ph img{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;transition:opacity 0.5s;
}
.img-ph::after{
    content:attr(data-lbl);
    color:rgba(255,255,255,0.45);font-family:var(--font-serif);
    font-size:11px;letter-spacing:3px;font-weight:500;
    position:absolute;bottom:8px;right:10px;padding:3px 10px;
    background:rgba(0,0,0,0.35);border-radius:3px;
    z-index:1;pointer-events:none;backdrop-filter:blur(4px);
}
.img-ph.l{aspect-ratio:16/9}
.img-ph.p{aspect-ratio:3/4}

/* ==================== About ==================== */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,72px);align-items:center}
.about-txt p{font-size:15px;color:var(--brown);line-height:2.1;margin-bottom:20px}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
.stat-it{text-align:center;padding:20px 10px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.stat-num{font-family:var(--font-serif);font-size:36px;font-weight:700;color:var(--red);line-height:1.1}
.stat-lbl{font-size:12px;color:var(--gray);margin-top:6px;letter-spacing:1px}
.about-img-c{position:relative}
.about-badge{
    position:absolute;bottom:-24px;left:-12px;z-index:2;
    background:linear-gradient(145deg,var(--red),var(--red-dark));
    color:var(--cream);padding:14px 22px;
    border:2px solid var(--gold);
    border-radius:4px;text-align:center;
    box-shadow:0 6px 24px rgba(139,30,30,0.35);
    min-width:100px;
}
.about-badge .big{
    font-size:30px;font-weight:900;line-height:1.1;
    letter-spacing:6px;font-family:var(--font-serif);
    color:var(--gold);
}
.about-badge .sm{
    font-size:13px;letter-spacing:4px;opacity:0.9;
    font-weight:500;margin-top:2px;
}

/* ==================== Animation ==================== */
.fu{opacity:0;transform:translateY(28px);transition:opacity 0.7s ease,transform 0.7s ease}
.fu.on{opacity:1;transform:translateY(0)}

/* ==================== Timeline ==================== */
.tl-item{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,60px);align-items:center;margin-bottom:72px}
.tl-item:last-child{margin-bottom:0}
.tl-txt.r{text-align:right}
.tl-year{font-size:12px;color:var(--gold);letter-spacing:5px;margin-bottom:10px;font-weight:500;display:inline-block}
.tl-txt h3{font-size:24px;font-weight:700;margin-bottom:12px;letter-spacing:1px}
.tl-txt p{font-size:14px;color:rgba(245,240,232,0.5);line-height:2.1}
.tl-txt p strong{color:var(--gold-light);font-weight:600}
.tl-txt .tl-src{font-size:11px;color:rgba(200,164,92,0.55);margin-top:8px;letter-spacing:1px}
.tl-img{position:relative}
.tl-img .img-ph img{object-fit:fill}

/* ==================== Idiom ==================== */
.idiom{
    background:linear-gradient(160deg,var(--dark2),#1a1010,var(--dark2));
    text-align:center;padding:clamp(56px,10vw,100px) 24px;position:relative;
}
.idiom::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(200,164,92,0.03),transparent 60%);pointer-events:none}
.idiom .py{font-size:15px;color:rgba(200,164,92,0.4);letter-spacing:8px;margin-bottom:16px;position:relative;z-index:1}
.idiom .txt{
    font-size:clamp(42px,8vw,68px);font-weight:900;color:var(--gold);
    letter-spacing:20px;margin-bottom:20px;position:relative;z-index:1;
}
.idiom .mean{
    font-size:15px;color:rgba(245,240,232,0.48);max-width:620px;
    margin:0 auto;line-height:2.3;position:relative;z-index:1;
}
.idiom .mean strong{color:var(--gold-light)}

/* ==================== Spots ==================== */
.spots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}
.spot-card{
    background:var(--white);border-radius:var(--radius);padding:36px 28px 32px;
    box-shadow:var(--shadow-sm);text-align:center;position:relative;
}
.spot-deco{
    width:32px;height:2px;background:var(--red);margin:0 auto 20px;border-radius:1px;position:relative;
}
.spot-deco::before{content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:6px;height:6px;background:var(--gold);border-radius:50%;opacity:0.5}
.spot-card h3{font-size:19px;font-weight:700;margin-bottom:12px;letter-spacing:2px}
.spot-card p{font-size:13px;color:var(--gray);line-height:2;max-width:360px;margin:0 auto}

/* ==================== Heritage ==================== */
.herit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px}
.herit-card{
    background:rgba(255,255,255,0.03);border-radius:var(--radius);
    border:1px solid rgba(200,164,92,0.1);padding:36px 24px 32px;
    text-align:center;position:relative;
}
.herit-card::before{
    content:'';position:absolute;top:0;left:20px;right:20px;height:2px;
    background:linear-gradient(to right,transparent,var(--gold),transparent);
    opacity:0.5;
}
.herit-icon{
    display:inline-block;width:48px;height:48px;line-height:48px;
    border:1px solid rgba(200,164,92,0.2);border-radius:50%;
    font-family:var(--font-serif);font-size:20px;color:var(--gold);
    margin-bottom:16px;
}
.herit-card h3{font-size:18px;color:var(--gold);margin-bottom:10px;letter-spacing:3px}
.herit-card p{font-size:13px;color:rgba(245,240,232,0.5);line-height:2}

/* ==================== Footer ==================== */
.ftr{background:var(--dark);color:var(--cream);padding:64px clamp(20px,5vw,56px) 32px;border-top:1px solid rgba(200,164,92,0.1)}
.ftr-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;max-width:1200px;margin:0 auto 48px}
.ftr-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.ftr-seal{width:44px;height:44px;background:linear-gradient(135deg,var(--red),var(--red-dark));border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:24px;font-weight:700}
.ftr h4{font-size:16px;color:var(--gold);margin-bottom:20px;letter-spacing:1px}
.ftr p,.ftr li{font-size:13px;color:rgba(245,240,232,0.45);line-height:2.2}
.ftr li{margin-bottom:10px}.ftr li a:hover{color:var(--gold)}
.ftr-bot{max-width:1200px;margin:0 auto;padding-top:24px;border-top:1px solid rgba(255,255,255,0.06);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:12px;color:rgba(245,240,232,0.25)}

/* ==================== Back to Top ==================== */
.back-to-top{
    position:fixed;bottom:32px;right:32px;z-index:999;
    width:44px;height:44px;border-radius:50%;
    background:var(--red);color:var(--cream);border:none;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 16px rgba(139,30,30,0.3);
    opacity:0;transform:translateY(20px);
    transition:opacity 0.3s,transform 0.3s,background 0.25s;
}
.back-to-top.show{opacity:1;transform:translateY(0)}
.back-to-top:hover{background:var(--red-light)}
.back-to-top svg{width:20px;height:20px}

/* ==================== Responsive ==================== */
@media(max-width:1024px){
    .g2{grid-template-columns:1fr}.about-img-c{order:-1}
    .about-badge{bottom:-16px;left:10px;padding:12px 18px}.about-badge .big{font-size:24px;letter-spacing:4px}.about-badge .sm{font-size:12px}
    .tl-item{grid-template-columns:1fr;gap:24px;margin-bottom:48px}.tl-txt.r{text-align:left}.tl-img{order:-1;max-width:420px}
    .ftr-grid{grid-template-columns:1fr 1fr;gap:36px}
    .spots-grid,.herit-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
}
@media(max-width:768px){
    .nav{height:56px;padding:0 16px}
    .nav-links{
        position:fixed;top:56px;left:0;right:0;flex-direction:column;
        background:rgba(20,20,20,0.98);backdrop-filter:blur(14px);
        padding:28px;gap:20px;transform:translateY(-120%);transition:0.35s;box-shadow:0 16px 32px rgba(0,0,0,0.3);
    }
    .nav-links.open{transform:translateY(0)}.nav-links a{font-size:15px}.nav-toggle{display:flex}
    .hero-title{font-size:clamp(44px,10vw,72px);letter-spacing:6px}.hero-sub{letter-spacing:4px}
    .about-stats{grid-template-columns:repeat(3,1fr);gap:10px}.stat-num{font-size:26px}
    .ftr-grid{grid-template-columns:1fr;gap:28px}.ftr-bot{flex-direction:column;text-align:center}
    .spots-grid,.herit-grid{grid-template-columns:1fr}
    .about-badge{left:8px;bottom:-12px;padding:10px 14px}.about-badge .big{font-size:20px;letter-spacing:3px}.about-badge .sm{font-size:11px}
    .tl-item{margin-bottom:36px}
}
@media(max-width:480px){
    .nav-brand .brand-title{font-size:15px}.nav-seal{width:34px;height:34px;font-size:18px}
    .hero-title{font-size:36px;letter-spacing:4px}
    .hero-btns{flex-direction:column;align-items:center}
    .btn-red,.btn-gold{width:100%;max-width:240px;text-align:center}
    .about-stats{grid-template-columns:repeat(3,1fr);gap:6px}.stat-num{font-size:22px}.stat-lbl{font-size:10px}
    .spot-card{padding:28px 20px 24px}
    .sec{padding:44px 16px}.idiom{padding:48px 16px}.idiom .txt{letter-spacing:10px}
    .back-to-top{bottom:16px;right:16px;width:40px;height:40px}
}

/* ==================== Accessibility ==================== */
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{
        animation-duration:0.01ms!important;animation-iteration-count:1!important;
        transition-duration:0.01ms!important;
    }
    .fu,.hero-badge,.hero-title,.hero-sub,.hero-desc,.hero-btns,.hero-scroll,
    .back-to-top{opacity:1;transform:none;transition:none}
}
a:focus-visible,button:focus-visible,.nav-toggle:focus-visible{
    outline:2px solid var(--gold);outline-offset:3px;border-radius:4px;
}
a,button,.nav-toggle{
    touch-action:manipulation;
    -webkit-tap-highlight-color:rgba(200,164,92,0.2);
}
.sec-title,.hero-title,.tl-txt h3,.card-body h3{text-wrap:balance}
.stat-num{font-variant-numeric:tabular-nums}
#about,#history,#spots,#culture,.idiom{scroll-margin-top:80px}
