@font-face { font-family: 'vivoSans'; src: url('../fonts/vivoSans/vivoSans-Regular.ttf') format('truetype'); font-weight: normal; }
@font-face { font-family: 'vivoSans'; src: url('../fonts/vivoSans/vivoSans-Medium.ttf') format('truetype'); font-weight: 500; }
@font-face { font-family: 'vivoSans'; src: url('../fonts/vivoSans/vivoSans-Bold.ttf') format('truetype'); font-weight: bold; }
@font-face { font-family: '寒蝉手拙体'; src: url('../fonts/寒蝉手拙体/ChillZhuo-ttf.ttf') format('truetype'); }
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'vivoSans', system-ui, -apple-system, sans-serif; line-height: 1.6; padding: 2rem; max-width: 800px; margin: 0 auto; }
h2 { margin: 1.5rem 0 1rem 0; font-size: 1.5rem; }
ul { margin: 1rem 0; padding-left: 2rem; }
li { margin: 0.5rem 0; }
.section { margin: 2rem 0; }
footer { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #ddd; font-size: 0.85rem; color: #666; line-height: 1.8; }
.container { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; }
body.tg-page { background-color: #e8e8e8; max-width: none; }
body.tg-page::before { content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' fill='white' opacity='0.3' /%3E%3C/svg%3E"); background-repeat: repeat; pointer-events: none; z-index: 0; }
h1 { display: none; }
.nav-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 1.5rem; }
.search-box { margin: 0 auto 2rem; max-width: 500px; display: flex; align-items: center; background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(4px); border-radius: 24px; padding: 0.3rem; }
.search-engine-select { padding: 0.5rem 0.5rem 0.5rem 0.8rem; border: none; background: rgba(0, 0, 0, 0.05); border-radius: 20px; font-family: 'vivoSans', system-ui, -apple-system, sans-serif; font-size: 0.85rem; color: #555; cursor: pointer; white-space: nowrap; flex-shrink: 0; margin-right: 0.3rem; outline: none; -webkit-appearance: none; 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='%23555' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 8px center; padding-right: 24px; }
.search-engine-select:hover { background-color: rgba(0, 0, 0, 0.08); }
.search-box input { flex: 1; padding: 0.5rem 0.5rem; border: none; background: transparent; font-family: 'vivoSans', system-ui, -apple-system, sans-serif; font-size: 1rem; outline: none; color: #333; }
.search-box input::placeholder { color: #999; }
.search-box:focus-within { background: rgba(255, 255, 255, 0.9); }
.search-submit { width: 36px; height: 36px; border: none; background: rgba(0, 0, 0, 0.08); border-radius: 50%; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: background 0.2s; }
.search-submit:hover { background: rgba(0, 0, 0, 0.15); }
.search-submit svg { width: 18px; height: 18px; stroke: #555; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nav-item { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #333; padding: 1rem 0.5rem; border-radius: 12px; background: rgba(255, 255, 255, 0.6); backdrop-filter: blur(4px); transition: transform 0.2s, background 0.2s; }
.nav-item:hover { transform: translateY(-2px); background: rgba(255, 255, 255, 0.9); }
.nav-icon { width: 48px; height: 48px; margin-bottom: 0.5rem; background: #ddd; border-radius: 12px; }
.nav-label { font-size: 0.85rem; color: #555; text-align: center; }
.logo-img { cursor: pointer; transition: opacity 0.2s; }
.logo-img:hover { opacity: 0.85; }
.modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.4); z-index: 1000; align-items: center; justify-content: center; }
.modal-overlay.active { display: flex; }
.modal-content { font-family: '寒蝉手拙体', system-ui, sans-serif; font-size: 1.5rem; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(8px); padding: 1.5rem 2rem; border-radius: 16px; max-width: 600px; text-align: center; color: #333; line-height: 1.8; white-space: nowrap; }
.footer-text { font-size: 0.85rem; color: #666; line-height: 1.8; padding: 2rem; position: fixed; bottom: 0; left: 0; }
.quick-links { display: flex; justify-content: center; gap: 2rem; margin-bottom: 2rem; flex-wrap: wrap; }
.quick-link { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #555; cursor: pointer; }
.quick-link svg { width: 32px; height: 32px; stroke: #555; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.quick-link span { font-size: 0.85rem; margin-top: 0.5rem; }
.quick-link:hover svg { stroke: #333; }
.quick-link:hover span { color: #333; }
.sub-links { display: none; justify-content: center; gap: 1.5rem; margin: -1rem auto 2rem; flex-wrap: wrap; }
.sub-links.active { display: flex; }
.sub-link { font-size: 0.85rem; color: #777; text-decoration: none; }
.sub-link:hover { color: #333; }