/* ============================================================
   私人营地 — 全局样式
   ============================================================ */

/* ---------- 自定义光标 ---------- */
html { cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACdUlEQVR4nLWWvUsdQRTF948QUplOAjaK9RNSpNTUgTQpAum0s7awSOlfYCNYCJZCUgdCTBGQgIWFjaC8wtJCRcY9kz0vZ+/e+cjzZeAy3/f85s7HbhNCaGgVKUxpGY8iXAHx/wAef13nIILk4c+wfKqGoOD5xmEKolq0AkYXMwQI49vm/uhM258lrGl8NfYjogCMgkDMNAFCQHwARqGDmEqkBHD68/QvhAXQKLRWvQV0XCNeBJAoBA/COqPZ1afGFQHs6SeA50jFc4KOuA/ANhtCTn4/Woq2trwQTeslYSM+BLDXD7a5NooGEZZhENS6jrNjFRjmAphyHICJnz+8dQFs3evjXAIzYu5bEJzXj07UIessq7DW7RgFkCgkUy/8DDcdos5yCkrnWACJQhpA99hzpkB2S7hKe2YoPjUAbXy8nz2UswBoVIDOVubnot39/p4U5BgPQG+JBRg0pFaIditAALSj7AHaa6p67mfS3mdzfXoiKmr92e2RqzhYfQ+iHdToRG/cw83l5HSjnPA1AOhAswCTiYwC6nhK371ZjWXkEKV5/Xx6nRexqQZQan5uXy8vhr2drR4AzPYj6eq5TdURID3Iv2xvR4dwfPHjqwtg+5H0HOH6mu9BHQAMAI8nJ9HCxdlAvAfS9nPszABwxeBYxeHQKxMCpgC8vv8EQAeYzJOvBmErrsb5+n6oeBUAJ6cgPMOB45Otj489gDmASeJkhWi6axd/x7oo2L8evoyltz8r7o399nIhGv7/Pq7vhtHKp5ijzr6DF/PJFZcAsuny1RItXjOIa472zpoWpORuAFBMAhD/otpVx7wNfcy1v41C0d8Toy1si73sWxsAAAAASUVORK5CYII=) 1 1, auto; }
a, button, [role="button"], .btn-primary, .btn-outline, .read-more, summary,
select, input[type="checkbox"], input[type="date"], input[type="month"] {
    cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACkElEQVR4nK2WP0sdQRTF50MIVtqJYKNYPyGFpaZIFUiTQmIpWFhbKFjmE6QRJHXAkNSBENOIBCRpLBSEV+QDhCDjnvveee/sfXd29+kbOOzs7Ow9v7nzZzclKTlnygqaZqRuZeA5qA5uZwYxHcDvyz8ZaoJoK0+CIIAGmUVxEGUYATDn84+fpxp1U+nf9+OM5PHCCwE4HTolz4EQkPqoWSrTEQxMWboCwKAN4Orn1RgijxeeSQH05TYABu5iXgTIbjpKAD4Y5Udf6lcDaIDIJYAoIM1KhoF5fe4DiCLAm95q3lpbMqHO+zZjZz65HbM7ByLzva2eCYasqwjk2wgMFQEEIjz5fNAIQJ+dvH1ZA2bGGgGiDNAcASEEYV2N9d73UQDJQpkB8ulmQNyzXoLSdzyAZKEMoHMcBVMgPyUcpWZHzZ8MQPXPTyfWgPaZBUBSAwZbX5gz/fv1vWjIPhGA7pLWDJRGiHZvQAC0ox4B+m3aBJAJ4F9Msi3VRE2T275+emQrls0JoC/6wND/v3ej1Y161CdaT0PQsrm+yCzgHkfp680Nq+MKUyp6zqM3OBHbzZWc1PzcvlhbyR+ODmoAkH+OoqPnNPkMNP7RkvzL4aEFROCbH19DAP+cHy7dvu570A5AAeDh4sKUb64nzGsg1XP2fTYAXoI56gjszT+9ejeSh4AUgNu3M4AGJIRvh273j01RNgig54eaNy5GjJ7mWo8gvLDgeGTr4VPaghMATD3N9co+o9+xqh3yfz08GTud/RGAjChV94lAeP5tccn+/3a23+fe+q5dcY926Gx+odOIuwAkAbBOd8urkG0zmOsV7UOlCmQa7zrAMOVmDmNnbsLvWzVqu1apt6s+r7LQavgIwnTT1j9cowEAAAAASUVORK5CYII=) 4 1, pointer;
}
input[type="text"], input[type="password"], input[type="url"], input[type="number"],
textarea, [contenteditable] {
    cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACXElEQVR4nLWWP2tUQRTF50MIVmsXBJuE1AlYWAZrwcYPsGCXOrAWfoo0AYvtA1oLYuwWwTJNQNjCDxCCjO9M9jzPu3Pve5N1HThk5s2de37zd5NyzolCsW182oHiIkZh/b8C6KxtfQxgqmwF4cx8YL5tMRA+TADwT8Za1j/X4yviAezE2UAIyDhAvj8LW5lMAay+rWoIC9AFPgiAiVvMmwC6oMRBU8koGxvFNQGg6g2MRLPI0DGfBvAgXh/tF50c7BVpuwU0RTfBAPRBb0+OimDCOgRDbWucjVVgqBkAA9+/eekC2LbXx7EE5oo1AzCJJmSbdTXWto1RAFmFv3ud6ZxztfxcbiZEm/UISsdYAFkFTjoToK/rHnvJFMhuCWdpzwzNBwC65Dp7lOjArS8vRg/lgwE20hVIHsDh7FHR7fcvoSFjPAC9JdUhtPczmiG+WwMC4DvqHqC9pk0AdqDGqImamjzV9shVrIoFSDrQJobuft30pxt1LwayABvQcQAU0hIAT+mrF8eljr8wpbx+Pr3Oi+j5VwA9Oan5c/v84Fk+f3c6AIBsv73O3KaWFRjsIcg/np2VhEh8/fWTC2D7UfQc4fqa34M2AAgAv6+uivL1j8p8ANL1M3ZnALhiSKzmSOjVCQEpAK9vC0DfZgIMTpuTr4KxNVdxvL4fnrkHkAjAwRGEJxw4Ptn6+EQHMAIoxT5ClP0vx7b5MkYvX2QeBnPJ0f/5yV7/Pz63gN+hD49nkzMeM3chOpPUmVXjFIC6ebqfOpAp7wrAa6fFYtGk5XKZ5vN5EUq3CpPmfwA3m32rzgPSngAAAABJRU5ErkJggg==) 3 8, text;
}
.loading, [aria-busy="true"] {
    cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACWUlEQVR4nLWWP0tcQRTF34cQhAXTSUqD9X4EI1insQhYWqeztPQjLAj5BoG08lDQShHSaSMkbmEtGsK4Z/SsZ+/eO2/eRgcO8+bNn/ObO/fNbtP0K2lBVaycUqfeDQCLDwaDkhLq9EyRnqeUSy8IAgQ7zwUQb1C4ng/w2N5aJWpRgOhYQoj70ZUqQf9jnkbnrujpQvz5dkz1Nh//HhcjIADzUbAQfcxhfHF24UbBGjOJi8kIAAzyIGBGQ5W3e2scAiQn/BQhrKE1VzAL4OTAKwPNj7ZGqqQixJfhWtbGp9UsbVsoLwfcCGjo27aFkkqPYndjmAVDPqsIxHZUGr2cCGBuvjkpgJp4EKj3tzenEFU5IHILFoRgwGc11jbHRLkQfobkgWy4aYo2nyMonaMREPPi78PMGetiHpA9Eial5oGaC0AI4QJQ4x+HczmgYxRg0SNo1MACPFyehIZef1US2gHeDtdXlrJKABxj+4PPMLnmBPDOFbWFwDu08Z7PEOfb48R7e/4ugN0FTf/e3UzFG1HbfI4AoGL4KdJyohrXyNuEAHRDcLJMmJGaRZto5D5hBM16ZQiSdwFEEJpH+HxLEXAhOPnn3l76d3qala5/FUOPfo7tCxCGDxmOhbvMFQJSAH6e0REUQ4jJXtixK6iUiDxGAhiP2JwAnBxBeELC8cqmmNjVu1cI1AoBTf+OvUSBbfbzYgqSuHz2JbUfVrPw/+/r54M0XN/JNdrs+768ojuuKjXmzc3HNSrf6TDXGu9f1ExAar3riwDkf0+TXed6Evpca/8kCp3rPQG7WcCCDcE/qgAAAABJRU5ErkJggg==) 1 1, wait;
}
[title]:not([title=""]):hover, abbr[title]:hover {
    cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACgElEQVR4nLWWPUtcQRiF7w+wFK20EyGNi/UKgilNakGQFAE77awtLCzzC2yEFAFLIdaCqIWyBCxSbLOgbGGZIopM7pncs5x578zc67oOHOZ7zrPvfOwtnHMF1SK5MZVZUYxbQLwfwMvNQw7CSe7+D8unyJg8wO+dHymI1qY2bU3NBKrWdUkAN/xTPJ3caftYxjS/XVsLVEGE26IAjIJATMw8AhEHYBQqiDebM/xJCAugUSjVeguG98MaAI1S7UkAiYKLQcAM6l33Ak0MwJ5+AlhDFaFoljJvBGCbDTGNNrtLXuudBS+tayRamNcB7PWDdte7XjBhGYKh1nUc1MI8BDBlPwALHX75HAWwdduX2nf0BQAS8uB94q8HAM1QZp1lNdZ6DgDRCwAiKQg/w01T1FlOQWGMPZB6ZhoBdI8VIAZkt6RpC8YGoJbnpqOHEu2TAijUgAAwgP7+ugiguK86JrYFekssQK0hde3QngOw/Uz2mqpf9OuFA3WijlMTNbXr2S3kQYz9+gCiHFToxNi458fB6EVEObFWDaACzQKMJjIKqOOZ3fi44svIYUrF+lFnFHSrXgWg1HznVzsf3NHBXgAA2X7efQJwm+xDlP2iJfnP/X2/IBbuX55FAWw/rx0BhqfH4wFAAHi5uvJy/buaeQBS9nPsxABwt7Fwk7lCQArA9+FVAFwAk3nyVfhVUAqE85ETQM1bAXByCiImHDiAcT7fEXsDcgCjxMkKwWvnP8eqKLDOfv5nRL8BGgBSyfefzy944Rvw66dvrru87XPU2fd9dk5/cXbdtuY+DRaXKH/NYK452isVJUjTcjWAxiQA/iuq/NU+L0Pvc+0vo9C43j83CGZpkv1h1AAAAABJRU5ErkJggg==) 1 1, help;
}
.crosshair, .precision {
    cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACOklEQVR4nM2WsUoEMRRF8xGClXYi2CjWChaWYmEl2FjZChbWFgp+hY3gBwiC1oKonQiWFgrCFn6AiMS5ce949+3LTGZVMHCZxOS9e+ZNEjcE02KMtZwWR1R5o/F/A4jyjF/TzW1kCAeg2LQARl/m27BBv9Z6Lz2/IjEOA8nzx29vIQTkbyoAgzaAu9u7/L6IUoGuxkhcYl4MwKC2ZJRdm1tXCuAG5kSznKFjngdg+TG0wRsLs0krc1NJOi4BdU+Cx0FtrywkwYR9CIY61nV2rQJDxQAIPNxcdQHs2JtjLIFZsWIAJtGEHLOvxjq2axRAqtAOoOVmQozZz0FpjAWQKuQB9Bt7yRTIfhK+pd0zNB8ZgOqdHTduyt8ACGrAZPMTY0lv91dZQ67xAPSUdAKwCawBAfB39D1Ae0yLAGxgkPtBTdQ0DF40Q59HjmJzqxYFDbSJoffX53p3o++tCc5+6oNm20AgqxD61/L68mLq4wlTypvn1evciI0vP0ROav67XZqbiUf7uwMAkJ1H07fnZyquAOlBfr63lxIi8eP1hQtg59F0H+H4mv8HZQAQAD5ubpLi48OQ+QBINc+1JQCNv+kZjCOGxNb8dG2rloWAFIDHtxMAEyA49He+1dPOQZI3x3i9P2z5WwEY3ARhhQ3HK1svn7YNaIFSY7BCWMHM/urhzVh08zUB2LnLyam6EvrE70HMQSfjE8Vv3AUgPE/PpqdeQNqv5qlQgXT1bgdAq8pdyxvDHKqq0Gr2CYnHGeppztXiAAAAAElFTkSuQmCC) 5 5, crosshair;
}
.draggable {
    cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABZElEQVR4nM2XMW7DMAxFdcBeohfIGbr0GM0BgmbKCTp071QEyZwhc7csSinoqz+UZMkQJJWAYFsm+B8pWraNaTDrrSVGk7gcwDFF/Lb/dmMoBMRPm10AkPMhECyeGt0heN1zY0gVlqyr+L82SX5GAULpLy8H+/P22RdCrTULu6P9OLdD5JpJ5kQoiP3a1/PWXXthd/T3quNGTibxOCFTZAkhBuB5LVS1bfMmoxxDqYOAzxjlZwiBkqETyMSOHXIALqgXgaibO14DDPu8P72GEIvxcbOwrwcIZA1hZM29ID4ewGqA6AVWAyCnXO6H9RfzMLwU1QClEkGcG42FuSoYJB4BVPXBEoBuQgwBEWGIr2pC7ZhYgr/upm6HOC8Nl74UNwuRcmIIZIonIVf6mrirzD6aAQiXHpk2Ca0Ait4Pw8RTPDPFx5ktWHdxM/OjVO9owz/LNcTwHxMNMeXXTENMEWeIVvE7YCpKSkt2Oy8AAAAASUVORK5CYII=) 16 16, move;
}
[disabled], .disabled, :disabled {
    cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACcElEQVR4nL2Wv0olMRjF8xC2a+cuWKjYCVexsFRrwWYFwXLBwtpCwdInsPEJLAStBVE7EYRtLLwg3GIfYFmWOCfkDMdvkknuxd3AIfNNJt/55S/jnBTvfVb85JPULWLS1/5vAGh+sbTifn6d66h57+N3bZJSsabmXb+5Tn0TeyhCFI37gASiC2BHHQFCIcSkAOi38zRMQyhAHLFCtOW/ARiIsQFGb6OkOdWBSAEIhCdECQDGjw+P2dFXAeQ2oN0DMKOhqjT6BETvKWhHbk+BNaa5glUD9NwDSfPtwXzQ+sJMkMYKNBaAQjC0QvmxPmgFQ40pAuG5ag9YCJ1+LUyqRikAbTv5vqlm/TeiZYGYRBMy5rMaa6zf2IFg9qoBdLqZEDGfc1Dah7HumSKArnEqmQLZJeEo7Z6h+cQA1OjyvLMH9JvPAHBqwGSLX6aCfj/dZg35TQpAT8lYADaBNSAA3uM5BWiPaQ6gPSJ6ntlR29VETZ25P+zycCl6zQmgHW079OfXsN3deE59k9pPETRvrh05C4hxxW6tLYdn1DClUu2IOQu6VPYeKJKzExKeHR341YXZUCsAZNvtUnCZqgHYEeRXh4fhJkPil7vrJIC2oy/64MhCiFFPBAAh2d/7+yD/8twx/wDStHOPUOjPWZ0IAEcMiUvmuic05iyMDcBNCACbFHrdPw5KAcA0NQtqXgXAyycHYY0prr+dhaojaCFQK4SLxy78jkUjHjuacRMagGQpQqhupmeC8P+3u3HqB4t7oUaM9zpLEcJFgJx/NYQbfpunwrGDudZ4HwGcVQmgBOEMQPh9a0Yd6mb6Q802lBqAd7Vpr22XdB6NAAAAAElFTkSuQmCC) 1 1, not-allowed;
}/* ---------- 背景 ---------- */
.bg-image {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: url('/static/katou_bg.jpg') center/cover no-repeat;
    z-index: -2;
}
.bg-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    z-index: -1;
}
.bg-image-admin {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: url('/static/lucy_bg.jpg') center/cover no-repeat;
    z-index: -2; opacity: 0.18;
}
.bg-overlay-admin {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(255, 255, 255, 0.92);
    z-index: -1;
}

/* ---------- 毛玻璃卡片 ---------- */
.glass-card {
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    padding: 2rem;
    color: #fff;
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.glass-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.3);
}
.glass-card h1, .glass-card h2, .glass-card h3 { color: #fff; }
.glass-card a { color: #a0d2ff; }
.glass-card .article-excerpt { color: rgba(255,255,255,0.8); }

.admin-main {
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 12px;
    padding: 1.5rem;
    margin-top: 1rem;
    min-height: 70vh;
}

/* ---------- 导航 ---------- */
.landing-nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.8rem 2rem;
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
.nav-brand {
    font-size: 1.2rem; font-weight: bold; color: #fff;
    letter-spacing: 0.05em;
}
.nav-links { display: flex; gap: 1rem; align-items: center; }
.nav-links a {
    color: rgba(255,255,255,0.8); text-decoration: none;
    font-size: 0.9rem; padding: 0.3rem 0.8rem;
    border-radius: 6px; transition: all 0.2s;
}
.nav-links a:hover, .nav-links a.active {
    color: #fff; background: rgba(255,255,255,0.15);
}
.visitor-badge {
    color: rgba(255,255,255,0.7); font-size: 0.85rem;
    padding-right: 0.5rem; border-right: 1px solid rgba(255,255,255,0.2);
}
.admin-nav {
    background: rgba(255,255,255,0.9) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(0,0,0,0.08);
    margin-bottom: 1rem;
}

/* ---------- Hero ---------- */
.landing-main {
    padding-top: 80px; padding-bottom: 3rem;
    max-width: 900px; margin: 0 auto; padding-left: 1rem; padding-right: 1rem;
}
.hero {
    text-align: center; padding: 3.5rem 2rem; margin-bottom: 2rem;
}
.hero-title {
    font-size: 3rem; font-weight: 800; margin-bottom: 0.5rem;
    letter-spacing: 0.08em; text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.hero-subtitle {
    font-size: 1.15rem; opacity: 0.85; margin-bottom: 2rem;
}
.hero-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.btn-primary, .btn-outline {
    display: inline-block; padding: 0.65rem 1.8rem;
    border-radius: 8px; font-size: 0.95rem; text-decoration: none;
    transition: all 0.25s; font-weight: 500;
}
.btn-primary {
    background: rgba(255,255,255,0.2); color: #fff;
    border: 1px solid rgba(255,255,255,0.3);
}
.btn-primary:hover { background: rgba(255,255,255,0.3); transform: translateY(-1px); }
.btn-outline {
    background: transparent; color: rgba(255,255,255,0.8);
    border: 1px solid rgba(255,255,255,0.25);
}
.btn-outline:hover { background: rgba(255,255,255,0.1); color: #fff; }

/* ---------- 文章卡片 ---------- */
.section-header { text-align: center; margin: 3rem 0 1.5rem; }
.section-header h2 { color: #fff; font-size: 1.8rem; margin-bottom: 0.25rem; }
.section-desc { color: rgba(255,255,255,0.65); font-size: 0.95rem; }
.article-cards {
    display: flex; flex-direction: column; gap: 1rem;
}
.article-card { padding: 1.5rem; }
.article-card h3 { margin-bottom: 0.5rem; font-size: 1.15rem; }
.article-excerpt { font-size: 0.9rem; line-height: 1.6; margin-bottom: 0.75rem; }
.article-meta {
    display: flex; justify-content: space-between; align-items: center;
    border-top: 1px solid rgba(255,255,255,0.1); padding-top: 0.5rem;
    font-size: 0.85rem; color: rgba(255,255,255,0.55);
}
.read-more { color: #a0d2ff; text-decoration: none; font-size: 0.85rem; }
.read-more:hover { text-decoration: underline; }
.article-detail { max-width: 750px; margin: 0 auto; }
.article-content { font-size: 0.95rem; line-height: 1.85; }

/* ---------- 访客卡 ---------- */
.visitor-card form label { color: rgba(255,255,255,0.85); }
.visitor-card form input, .visitor-card form select {
    background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
    color: #fff; border-radius: 8px;
}
.visitor-card form input:focus, .visitor-card form select:focus {
    border-color: rgba(255,255,255,0.5); outline: none;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.1);
}
.visitor-card form input::placeholder { color: rgba(255,255,255,0.4); }
.visitor-card form select option { color: #333; background: #fff; }
.visitor-card form button {
    background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.3);
    color: #fff; border-radius: 8px; padding: 0.65rem; font-size: 0.95rem;
    cursor: pointer; transition: all 0.25s;
}
.visitor-card form button:hover { background: rgba(255,255,255,0.3); }

/* ---------- 动画 ---------- */
.animate-fade-in {
    opacity: 0; transform: translateY(20px);
    animation: fadeInUp 0.7s ease forwards;
}
.animate-slide-up {
    opacity: 0; transform: translateY(40px);
    transition: all 0.6s ease;
}
.animate-slide-up.visible {
    opacity: 1; transform: translateY(0);
}
@keyframes fadeInUp {
    to { opacity: 1; transform: translateY(0); }
}

/* ---------- 点击涟漪 ---------- */
.click-ripple {
    position: fixed; z-index: 9999;
    width: 20px; height: 20px;
    margin-left: -10px; margin-top: -10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
    pointer-events: none;
    animation: rippleOut 0.6s ease-out forwards;
}
@keyframes rippleOut {
    0%   { transform: scale(0); opacity: 1; }
    100% { transform: scale(20); opacity: 0; }
}

/* ---------- 底部 ---------- */
.landing-footer {
    text-align: center; margin-top: 3rem;
    padding: 1.5rem; color: rgba(255,255,255,0.4); font-size: 0.85rem;
}

/* ---------- 表格与标签 ---------- */
table { font-size: 0.9rem; }
td mark {
    white-space: nowrap; padding: 0.1rem 0.4rem;
    border-radius: 4px; font-size: 0.85rem;
}

/* ---------- 表单 ---------- */
details form {
    padding: 1rem; border: 1px solid var(--muted-border-color);
    border-radius: 8px; margin-bottom: 1rem;
}
.chart-row { margin-bottom: 2rem; }

/* ---------- 移动端 ---------- */
@media (max-width: 768px) {
    .hero-title { font-size: 2rem; }
    .hero { padding: 2rem 1rem; }
    .landing-nav { padding: 0.6rem 1rem; }
    .landing-main { padding-top: 60px; }
    .article-cards { gap: 0.75rem; }
    .hero-buttons { flex-direction: column; align-items: center; }
    .nav-links { gap: 0.3rem; }
    .nav-links a { font-size: 0.8rem; padding: 0.25rem 0.5rem; }
    .grid { grid-template-columns: 1fr; }
    nav ul { flex-wrap: wrap; }
}

/* ---------- 影视/游戏卡片网格 ---------- */
.media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}
.media-card {
    background: rgba(255,255,255,0.7);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: transform 0.2s, box-shadow 0.2s;
    display: flex; flex-direction: column;
}
.media-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.media-card img {
    width: 100%; height: 280px; object-fit: cover;
    background: rgba(0,0,0,0.05);
}
.media-card .media-info {
    padding: 0.6rem 0.8rem;
    flex: 1;
    display: flex; flex-direction: column; gap: 0.3rem;
}
.media-card .media-title {
    font-weight: 600; font-size: 0.9rem;
    line-height: 1.3;
    overflow: hidden; display: -webkit-box;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.media-card .media-meta {
    font-size: 0.78rem; opacity: 0.6;
}
.media-card .media-rating {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.8rem;
}
.media-card .media-rating .stars {
    color: #f5a623; font-weight: bold;
}
.media-card .media-tag {
    display: inline-block;
    font-size: 0.7rem; padding: 0.15rem 0.5rem;
    border-radius: 10px;
    background: rgba(0,0,0,0.07);
}

/* ---------- API 搜索结果下拉 ---------- */
.search-results {
    max-height: 400px; overflow-y: auto;
    border: 1px solid rgba(0,0,0,0.1);
    border-radius: 8px;
    margin-top: 0.5rem;
    background: #fff;
}
.search-result-item {
    display: flex; align-items: center; gap: 0.8rem;
    padding: 0.6rem 0.8rem; cursor: pointer;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    transition: background 0.15s;
}
.search-result-item:hover { background: rgba(0,0,0,0.03); }
.search-result-item img {
    width: 40px; height: 56px; object-fit: cover;
    border-radius: 4px;
}
.search-result-item .result-info {
    flex: 1;
}
.search-result-item .result-title {
    font-weight: 600; font-size: 0.9rem;
}
.search-result-item .result-meta {
    font-size: 0.75rem; opacity: 0.5; margin-top: 0.15rem;
}
