:root{--bg-page:#f4eedf;--bg-primary:#f4eedf;--bg-secondary:#eee4cf;--bg-card:#fffaf0;--bg-surface:#eee4cf;--text-primary:#292118;--text-secondary:#5f5547;--text-muted:#887b6a;--accent:#a8322d;--accent-light:#c44b43;--accent-dark:#7e241f;--accent-gold:#b89562;--accent-gold-light:#d6bd93;--accent-gold-dark:#896a42;--border:#d2c4a8;--border-light:#e6dac1;--radius-sm:3px;--radius:6px;--radius-lg:10px;--shadow-card:0 10px 30px rgba(63,48,28,.07);--shadow-card-hover:0 18px 44px rgba(63,48,28,.13);--page-width:1240px;--reading-width:820px}
html[data-theme="dark"]{--bg-page:#15120e;--bg-primary:#15120e;--bg-secondary:#211c16;--bg-card:#1c1813;--bg-surface:#282119;--text-primary:#f0e5cf;--text-secondary:#c8bba4;--text-muted:#958977;--accent:#d05b51;--accent-light:#e27a70;--accent-dark:#b6473e;--accent-gold:#d0ad78;--accent-gold-light:#e0c69c;--accent-gold-dark:#a98859;--border:#43382b;--border-light:#30281f;--shadow-card:0 12px 34px rgba(0,0,0,.28);--shadow-card-hover:0 20px 48px rgba(0,0,0,.4)}
html{background:var(--bg-page)}body{min-height:100vh;background-color:var(--bg-page);background-image:linear-gradient(rgba(168,50,45,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(184,149,98,.018) 1px,transparent 1px),radial-gradient(circle at 12% 6%,rgba(184,149,98,.09),transparent 28rem);background-size:32px 32px,32px 32px,auto;font-feature-settings:"kern" 1,"palt" 1}.container{width:min(calc(100% - 40px),var(--page-width));margin-inline:auto}.navbar{background:color-mix(in srgb,var(--bg-card) 90%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent-gold) 70%,var(--border));backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15)}.navbar-inner{width:min(100%,var(--page-width));min-height:70px}.logo{position:relative;font-size:1.24rem;letter-spacing:.12em}.logo::after{content:"DIGITAL HERITAGE";display:block;margin-top:.05rem;color:var(--accent-gold-dark);font-family:var(--font-body);font-size:.5rem;font-weight:700;letter-spacing:.18em}.nav-links{gap:.08rem}.nav-links a{position:relative;min-height:42px;padding:.65rem .7rem;border-bottom:0;border-radius:var(--radius)}.nav-links a:hover,.nav-links a.active{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);border-bottom-color:transparent}.nav-links a.active::after{content:"";position:absolute;right:.7rem;bottom:.4rem;left:.7rem;height:1px;background:var(--accent)}.search-form input{width:154px;border-color:var(--border);background:color-mix(in srgb,var(--bg-surface) 78%,transparent)}.search-form input:focus{width:210px;background:var(--bg-card)}main.container{padding-top:clamp(1.35rem,2.8vw,2.6rem);padding-bottom:clamp(3rem,7vw,6rem)}
.breadcrumb{display:flex;align-items:center;gap:.55rem;margin-bottom:1.2rem;color:var(--text-muted);letter-spacing:.04em}.breadcrumb a{color:var(--text-secondary)}.breadcrumb a:hover{color:var(--accent);text-decoration:none}.page-header{position:relative;margin:0 0 1.6rem;padding:clamp(1.5rem,3vw,2.5rem);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(120deg,color-mix(in srgb,var(--bg-card) 97%,transparent),color-mix(in srgb,var(--bg-surface) 76%,transparent));box-shadow:var(--shadow-card)}.page-header::before,.resource-hero::before,.about-hero::before,.sv-hero::before,.auth-wrap::before,.error-page::before{content:"";position:absolute;inset:8px;pointer-events:none;border:1px solid color-mix(in srgb,var(--accent-gold) 44%,transparent);border-radius:calc(var(--radius-lg) - 4px)}.page-header::after{content:"DIGITAL ARCHIVE · 数字营造档案";display:block;margin-top:1.15rem;color:var(--accent-gold-dark);font-size:.68rem;font-weight:700;letter-spacing:.2em}.page-header h1{position:relative;z-index:1;margin:0;color:var(--accent-dark);font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.2}.page-header h1::after{display:none}.page-count{color:var(--text-muted);font-family:var(--font-body);font-size:.82rem;font-weight:500}.page-subtitle,.result-count{position:relative;z-index:1;max-width:720px;margin:.65rem 0 0;color:var(--text-secondary);font-size:.96rem;line-height:1.8}
.filter-bar,.resource-filter,.search-filter-bar,.admin-filter-bar{gap:.75rem;margin-bottom:1.75rem;padding:1rem;border:1px solid var(--border-light);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 94%,transparent);box-shadow:0 6px 22px rgba(63,48,28,.045)}.filter-bar input,.filter-bar select,.admin-filter-bar input,.admin-filter-bar select,.auth-input,.sv-field input,.sv-field textarea{min-height:44px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-page);color:var(--text-primary)}.filter-bar input:focus,.filter-bar select:focus,.admin-filter-bar input:focus,.admin-filter-bar select:focus,.auth-input:focus,.sv-field input:focus,.sv-field textarea:focus{outline:none;border-color:var(--accent-gold-dark);background:var(--bg-card);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-gold) 18%,transparent)}.btn,.btn-secondary,.btn-small,.sv-submit,.auth-submit,.auth-send-btn,.auth-logout-btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding-inline:1.1rem;border-radius:var(--radius);font-weight:600;letter-spacing:.03em;transition:transform .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.btn:hover,.btn-secondary:hover,.btn-small:hover,.sv-submit:hover,.auth-submit:hover,.auth-send-btn:hover,.auth-logout-btn:hover{transform:translateY(-1px)}
.card,.file-card,.result-item,.sv-card,.about-stat-card,.admin-card{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 97%,transparent);box-shadow:var(--shadow-card)}.card:hover,.file-card:hover,.result-item:hover,.sv-card:hover,.about-stat-card:hover,.admin-card:hover{border-color:color-mix(in srgb,var(--accent-gold) 72%,var(--border));box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.project-grid,.component-grid{gap:clamp(1rem,2vw,1.5rem)}.card-thumb-wrap{aspect-ratio:16/10;overflow:hidden}.card-thumb-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.75,.25,1)}.card:hover .card-thumb-wrap img{transform:scale(1.035)}.card-body{padding:1.05rem 1.15rem 1.1rem}.card-title-compact,.article-body h3,.file-card h3{font-family:var(--font-heading);letter-spacing:.02em}.category-tag,.result-type,.file-category-badge,.sv-audience{border-radius:999px;letter-spacing:.04em}.empty-state,.empty-tip{grid-column:1/-1;padding:clamp(2.5rem,7vw,5rem) 1.25rem;border:1px dashed var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 72%,transparent);color:var(--text-secondary);text-align:center}.pagination{gap:.4rem;margin-top:2.2rem}.pagination a,.pagination span{min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-card)}.pagination .current{border-color:var(--accent);background:var(--accent);color:#fffaf0}
.hero-new{position:relative;min-height:min(620px,72vh);display:grid;place-content:center;margin-bottom:1.5rem;padding:clamp(3.5rem,9vw,7rem) clamp(1.25rem,6vw,5rem);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle at 72% 32%,color-mix(in srgb,var(--accent-gold) 15%,transparent),transparent 22rem),linear-gradient(130deg,var(--bg-card),color-mix(in srgb,var(--bg-surface) 80%,var(--bg-card)));box-shadow:var(--shadow-card);text-align:center}.hero-new::before{content:"";position:absolute;inset:10px;border:1px solid color-mix(in srgb,var(--accent-gold) 52%,transparent);border-radius:calc(var(--radius-lg) - 4px);pointer-events:none}.hero-new::after{content:"BIM · 3D PRINTING · DIGITAL TWIN";position:absolute;right:1.35rem;bottom:1.2rem;color:var(--accent-gold-dark);font-size:.65rem;font-weight:700;letter-spacing:.2em}.hero-new h1{position:relative;z-index:1;margin-bottom:.75rem;color:var(--accent-dark);font-size:clamp(3.2rem,9vw,6.8rem);line-height:1;letter-spacing:.16em;text-shadow:0 2px 0 color-mix(in srgb,var(--accent-gold) 35%,transparent)}.hero-new h1::after{display:none}.hero-sub{position:relative;z-index:1;margin:0 auto;color:var(--text-primary);font-family:var(--font-heading);font-size:clamp(1rem,2vw,1.35rem);letter-spacing:.12em}.hero-rotating,.hero-cf-scroll,.hero-cta{position:relative;z-index:1}.hero-rotating{color:var(--text-secondary)}.hero-cta{margin-top:2rem}.stats-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 2.2rem;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-card)}.stat-item{position:relative;padding:1.5rem 1rem}.stat-item+.stat-item{border-left:1px solid var(--border-light)}.stats-bar .stat-num{color:var(--accent-dark);font-family:var(--font-heading);font-size:clamp(1.65rem,3vw,2.4rem)}.tab-section,.timeline-section{margin-bottom:2rem;padding:clamp(1rem,2.5vw,1.75rem);border:1px solid var(--border-light);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 88%,transparent)}.tab-bar{gap:.4rem;margin-bottom:1.4rem;padding-bottom:.75rem}.tab-btn{min-height:44px;padding:.55rem 1.25rem;border:1px solid transparent;border-radius:999px}.tab-btn.active{border-color:var(--accent);background:var(--accent);color:#fffaf0}.tab-panel>p[style]{margin:1.25rem 0 0!important;text-align:right}.timeline-section h2,.about-section h2,.sv-form-section h2,.related-files h2,.comments-section h2{color:var(--accent-dark);font-family:var(--font-heading);letter-spacing:.04em}.timeline-section .timeline-item{display:grid;grid-template-columns:8.5rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px dashed var(--border)}
.article-list{gap:1rem}.article-card{overflow:hidden}.article-card-row{min-height:176px}.article-cover-wrap{flex:0 0 min(32%,300px);overflow:hidden}.article-cover{height:100%;object-fit:cover;transition:transform .45s ease}.article-card:hover .article-cover{transform:scale(1.035)}.article-body{padding:1.25rem 1.4rem}.category-nav{gap:.55rem;padding:.65rem;border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-card)}.category-nav-item{min-height:80px;border:1px solid transparent;border-radius:var(--radius)}.category-nav-item.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--bg-card))}.category-nav-icon:empty{display:none}.result-item{margin-bottom:.85rem;overflow:hidden}.result-thumb{border-right:1px solid var(--border-light)}mark{padding:0 .14em;background:color-mix(in srgb,var(--accent-gold) 36%,transparent);color:var(--accent-dark)}
.resource-hero,.about-hero,.sv-hero{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(125deg,var(--bg-card),var(--bg-surface));box-shadow:var(--shadow-card)}.about-content{margin:0!important}.about-hero{padding:clamp(3rem,7vw,5.5rem) 1.5rem}.about-hero h1,.sv-hero h1{position:relative;z-index:1;color:var(--accent-dark);font-size:clamp(2.3rem,6vw,4.2rem);letter-spacing:.1em}.about-stats-grid{gap:1rem}.about-stat-card{padding:1.35rem 1rem;transition:transform .2s ease,box-shadow .2s ease}.about-section{max-width:980px;margin:1.25rem auto;padding:clamp(1.4rem,3vw,2.2rem);border:1px solid var(--border-light);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 94%,transparent)}.about-section p,.article-content p,.detail-content p,.file-description p,.legal-content p{line-height:1.95}.about-section>p:not(.about-note){text-indent:2em}.about-content>.about-section:last-of-type{text-align:center}.sv-hero{padding:clamp(3rem,7vw,5rem) 1.5rem}.sv-hero::after{background:var(--accent-gold)}.sv-grid{gap:1rem}.sv-card{position:relative;overflow:hidden;padding:2rem 1.35rem}.sv-card::after{content:"";position:absolute;right:-26px;bottom:-26px;width:72px;height:72px;border:1px solid color-mix(in srgb,var(--accent-gold) 38%,transparent);transform:rotate(45deg)}.sv-card-icon{border:1px solid var(--border-light);border-radius:50%;background:var(--bg-surface)!important;color:var(--accent)!important}.sv-form-section,.auth-wrap,.profile-page,.payment-result,.legal-page,.error-page,.file-detail{border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 96%,transparent);box-shadow:var(--shadow-card)}.sv-form-section{padding:clamp(1.4rem,4vw,2.6rem)}.auth-wrap{position:relative;max-width:500px;margin:clamp(1.5rem,5vw,4rem) auto;padding:clamp(2rem,5vw,3.2rem);overflow:hidden}.auth-title{color:var(--accent-dark);font-size:clamp(1.8rem,4vw,2.4rem);letter-spacing:.1em}.auth-tabs{gap:.4rem;padding:.35rem;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface)}.auth-tab{min-height:42px;margin:0;border:0;border-radius:var(--radius-sm)}.auth-tab.active{border:0;background:var(--bg-card);box-shadow:0 2px 8px rgba(63,48,28,.08)}
.file-detail-header,.article-header,.detail-hero{border-color:var(--border);background:linear-gradient(125deg,var(--bg-card),color-mix(in srgb,var(--bg-surface) 78%,var(--bg-card)))}.file-preview-wrap,.gallery-section,.references-section,.related-files,.comments-section,.article-content,.detail-content{border-color:var(--border-light);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 94%,transparent)}.article-content{max-width:var(--reading-width);margin-inline:auto;padding:clamp(1.25rem,4vw,2.8rem)}.detail-engagement{overflow:hidden;border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-card)}.detail-action:hover{background:color-mix(in srgb,var(--accent) 7%,var(--bg-card))!important}footer{position:relative;margin-top:0;border-top:1px solid var(--accent-gold);background:var(--bg-card)}footer::before{content:"";position:absolute;top:5px;right:0;left:0;height:1px;background:var(--border-light)}.footer-content{width:min(calc(100% - 40px),var(--page-width));margin-inline:auto;padding-top:2.8rem}.footer-logo{color:var(--accent-dark);font-family:var(--font-heading);font-size:1.3rem;letter-spacing:.1em}
.admin-page{width:min(calc(100% - 32px),1440px);margin-inline:auto}.admin-page-header,.admin-toolbar,.admin-form,.admin-table-wrap,.admin-stats-row{border-color:var(--border-light);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-card)}.admin-page-header{padding:1.25rem 1.5rem}.admin-table-wrap{overflow:auto}.admin-table th{background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-heading);letter-spacing:.04em}.admin-table tbody tr:hover{background:color-mix(in srgb,var(--accent-gold) 8%,transparent)}
@media(max-width:1080px){.navbar-inner{min-height:62px}.logo::after{display:none}.search-form{display:none}.nav-links a{padding-inline:.55rem}}@media(max-width:900px){.nav-links{padding:.6rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-card-hover)}.nav-links a{padding-inline:.9rem}.stats-bar{grid-template-columns:repeat(2,1fr)}.stat-item:nth-child(3){border-left:0;border-top:1px solid var(--border-light)}.stat-item:nth-child(4){border-top:1px solid var(--border-light)}.article-cover-wrap{flex-basis:38%}}
@media(max-width:680px){.container,.footer-content{width:min(calc(100% - 24px),var(--page-width))}main.container{padding-top:1rem}.page-header{padding:1.5rem 1.2rem}.page-header::after{letter-spacing:.12em}.filter-bar,.resource-filter,.search-filter-bar,.admin-filter-bar{display:grid;grid-template-columns:1fr}.filter-bar>*,.resource-filter>*,.search-filter-bar>*{width:100%}.hero-new{min-height:520px;padding:3.5rem 1.25rem 4.4rem}.hero-new h1{font-size:clamp(2.8rem,17vw,4.6rem);letter-spacing:.08em}.hero-new::after{right:1rem;left:1rem;text-align:center}.hero-cta{display:grid;grid-template-columns:1fr}.hero-cta .btn,.hero-cta .btn-secondary{width:100%}.tab-section,.timeline-section{padding:.8rem}.tab-bar{display:grid;grid-template-columns:repeat(3,1fr)}.tab-btn{padding-inline:.4rem}.article-card-row{display:block}.article-cover-wrap{display:block;width:100%;aspect-ratio:16/8}.timeline-section .timeline-item{grid-template-columns:1fr;gap:.25rem}.category-nav{display:grid;grid-template-columns:repeat(2,1fr)}.result-item{display:grid;grid-template-columns:84px 1fr}.result-arrow{display:none}.about-stats-grid{grid-template-columns:repeat(2,1fr)}.sv-form-row{grid-template-columns:1fr}.footer-content{grid-template-columns:1fr;text-align:center}.footer-links{justify-content:center}}@media(max-width:420px){.stats-bar{grid-template-columns:1fr}.stat-item+.stat-item,.stat-item:nth-child(3){border-top:1px solid var(--border-light);border-left:0}.about-stats-grid,.category-nav{grid-template-columns:1fr}.result-item{grid-template-columns:1fr}.result-thumb{display:none}}@media(prefers-reduced-motion:reduce){.card:hover,.file-card:hover,.result-item:hover,.sv-card:hover,.about-stat-card:hover,.admin-card:hover,.btn:hover,.btn-secondary:hover,.btn-small:hover{transform:none}}

body .auth-wrap{max-width:500px!important;margin:clamp(1.5rem,5vw,4rem) auto!important;padding:clamp(2rem,5vw,3.2rem)!important;background:color-mix(in srgb,var(--bg-card) 96%,transparent)!important}
body .auth-title{color:var(--accent-dark)!important;font-size:clamp(1.8rem,4vw,2.4rem)!important}
body .auth-tabs{gap:.4rem!important;padding:.35rem!important;border:1px solid var(--border-light)!important;border-radius:var(--radius)!important;background:var(--bg-surface)!important}
body .auth-tab{margin:0!important;border:0!important;border-radius:var(--radius-sm)!important}
body .auth-tab.active{border:0!important;background:var(--bg-card)!important;box-shadow:0 2px 8px rgba(63,48,28,.08)!important}
body .auth-input:focus,body .sv-field input:focus,body .sv-field textarea:focus{border-color:var(--accent-gold-dark)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-gold) 18%,transparent)!important}
body .sv-hero{padding:clamp(3rem,7vw,5rem) 1.5rem!important}
body .sv-hero h1{font-size:clamp(2.3rem,6vw,4.2rem)!important}
body .sv-card{padding:2rem 1.35rem!important;background:color-mix(in srgb,var(--bg-card) 97%,transparent)!important}
body .sv-card:hover{box-shadow:var(--shadow-card-hover)!important;transform:translateY(-4px)!important}
body .sv-form-section{padding:clamp(1.4rem,4vw,2.6rem)!important;background:color-mix(in srgb,var(--bg-card) 96%,transparent)!important}
body .file-detail-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 96%,transparent);box-shadow:var(--shadow-card)}
body .file-detail-header{background:linear-gradient(125deg,var(--bg-card),color-mix(in srgb,var(--bg-surface) 78%,var(--bg-card)))!important}
body .file-category-badge{border-radius:999px!important}
body .file-preview-wrap,body .related-files,body .references-section{border-color:var(--border-light)!important;border-radius:var(--radius-lg)!important;background:color-mix(in srgb,var(--bg-card) 94%,transparent)!important}
body .detail-engagement{border-color:var(--border-light)!important;background:var(--bg-card)!important;box-shadow:var(--shadow-card)!important}
body .detail-engagement .detail-action:hover{background:color-mix(in srgb,var(--accent) 7%,var(--bg-card))!important}
body .donate-page,body .crowdfunding-page,body .opensource-page,body .profile-page,body .legal-page{color:var(--text-primary)}
body .donate-card,body .crowdfunding-card,body .opensource-card,body .profile-section,body .legal-content{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-card) 96%,transparent);box-shadow:var(--shadow-card)}
@media(max-width:680px){body .auth-wrap{margin:1rem auto!important;padding:1.6rem 1.15rem!important}body .sv-hero{padding:3rem 1.1rem!important}body .sv-card{padding:1.5rem 1.1rem!important}body .file-detail-wrap{border-right:0;border-left:0;border-radius:0}}

body .project-card .card-body,body .component-card .card-body,body .article-card .article-body{display:flex;flex:1;flex-direction:column;height:100%}
body .project-card .stats,body .component-card .stats,body .article-card .article-meta-row{margin-top:auto}
body .project-card .stats,body .component-card .stats,body .article-card .stats{display:flex;width:100%;align-items:center;justify-content:space-between}
body .article-card .article-meta-row{width:100%}
