:root {
  color-scheme: light;
  --ink:#18231f; --ink-soft:#3f4d47; --muted:#718078; --muted-readable:#5f6b65; --paper:#f3efe5; --paper-deep:#e9e1d2;
  --card:#fffdf8; --jade:#183f35; --jade-light:#286153; --cinnabar:#a8452f; --gold:#c79b55;
  --line:#d9cfbe; --shadow:0 20px 60px rgba(43,55,47,.10); --serif:"Songti SC","STSong","SimSun",serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.7 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }
body::before { position:fixed; inset:0; z-index:-1; content:""; pointer-events:none; opacity:.45; background:radial-gradient(circle at 12% 8%,#fff 0,transparent 28%),radial-gradient(circle at 90% 20%,#decdb0 0,transparent 25%); }
a { color:inherit; }
[hidden] { display:none!important; }
:where(a,button,summary,input,[tabindex]):focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.topbar { position:sticky; top:0; z-index:20; height:76px; padding:0 max(24px,calc((100vw - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(185,171,148,.65); background:rgba(247,244,236,.9); backdrop-filter:blur(16px); }
.brand { display:flex; align-items:center; gap:11px; text-decoration:none; }.brand-mark { display:grid; place-items:center; width:39px; height:39px; border-radius:50%; color:#fff8e8; background:var(--cinnabar); box-shadow:inset 0 0 0 3px rgba(255,255,255,.18); font:700 1.28rem/1 var(--serif); }
.brand-copy { display:flex; flex-direction:column; line-height:1.1; }.brand-copy strong { font-size:.95rem; letter-spacing:.09em; }.brand-copy small { margin-top:5px; color:var(--muted); font-size:.7rem; letter-spacing:.12em; }
.topbar nav { display:flex; align-items:center; gap:28px; }.topbar nav a { color:var(--ink-soft); text-decoration:none; font-size:.9rem; font-weight:700; }.topbar nav a:hover { color:var(--cinnabar); }.topbar .nav-search { padding:8px 14px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.58); }
main { width:min(1180px,calc(100% - clamp(24px,6.25vw,48px))); margin:0 auto; padding:42px 0 88px; }
.hero { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr); gap:44px; min-height:520px; margin-top:0; padding:clamp(48px,7vw,82px); overflow:hidden; border-radius:32px; color:#f9f3e7; background:linear-gradient(130deg,#102f29 0%,#214d40 58%,#6f3528 100%); box-shadow:0 28px 75px rgba(43,54,46,.2); }
.hero::before,.hero::after { position:absolute; z-index:-1; content:""; border:1px solid rgba(230,202,151,.16); border-radius:50%; }.hero::before { width:620px; height:620px; right:-280px; top:-340px; box-shadow:0 0 0 52px rgba(230,202,151,.035),0 0 0 104px rgba(230,202,151,.025); }.hero::after { width:260px; height:260px; left:-160px; bottom:-160px; }
.hero-copy { align-self:center; }.eyebrow { margin:0 0 12px; color:var(--cinnabar); letter-spacing:.18em; font-size:.72rem; font-weight:850; }.hero .eyebrow { color:#e6c58d; }
.hero h1 { margin:0; max-width:760px; font:700 clamp(3rem,6vw,5.6rem)/1.04 var(--serif); letter-spacing:-.055em; }.hero h1 em { color:#e9cb95; font-style:normal; }.hero-intro { max-width:680px; margin:26px 0 0; color:rgba(255,255,255,.76); font-size:1.05rem; line-height:1.9; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 21px; border:1px solid transparent; border-radius:999px; text-decoration:none; font-size:.92rem; font-weight:800; transition:transform .2s,background .2s; }.button:hover { transform:translateY(-2px); }.button-primary { color:#17382f; background:#f6eddb; }.button-ghost { border-color:rgba(255,255,255,.28); color:#fff; background:rgba(255,255,255,.06); }
.hero-card { align-self:center; padding:28px; border:1px solid rgba(255,255,255,.15); border-radius:24px; background:rgba(9,31,26,.36); box-shadow:inset 0 1px rgba(255,255,255,.08); backdrop-filter:blur(8px); }.seal { display:grid; place-items:center; width:116px; height:116px; margin:0 auto 26px; border:1px solid rgba(232,201,145,.5); border-radius:50%; box-shadow:inset 0 0 0 7px rgba(232,201,145,.06); }.seal span { font:700 3.1rem/1 var(--serif); }.seal small { color:#e2c48f; font-size:.58rem; letter-spacing:.22em; }.hero-card>p { margin:0; color:rgba(255,255,255,.56); font-size:.75rem; letter-spacing:.14em; text-align:center; }.hero-card>strong { display:block; margin:4px 0 24px; color:#f1d7a8; text-align:center; font-size:1.15rem; }.hero-card dl { display:grid; grid-template-columns:repeat(3,1fr); margin:0; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); }.hero-card dl div { text-align:center; }.hero-card dt { font:700 1.5rem/1.2 var(--serif); }.hero-card dd { margin:5px 0 0; color:rgba(255,255,255,.54); font-size:.7rem; }
.archive-note { display:flex; align-items:center; gap:18px; width:calc(100% - 56px); margin:-22px auto 0; padding:18px 24px; position:relative; z-index:2; border:1px solid #ddd0ba; border-radius:18px; background:rgba(255,253,248,.96); box-shadow:var(--shadow); }.note-mark { display:grid; flex:0 0 auto; place-items:center; width:44px; height:44px; border-radius:50%; color:#fff; background:var(--cinnabar); font:700 1.1rem var(--serif); }.archive-note strong { font-size:.92rem; }.archive-note p { margin:1px 0 0; color:var(--muted); font-size:.85rem; }
section { margin-top:70px; }.section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:24px; }.section-heading h2 { margin:0; font:700 clamp(1.8rem,4vw,2.55rem)/1.2 var(--serif); letter-spacing:-.03em; }.section-heading>p,.section-heading>a { margin:0 0 5px; color:var(--muted); font-size:.88rem; }.section-heading>a { text-decoration:none; font-weight:700; }.section-heading>a:hover { color:var(--cinnabar); }
.category-grid,.entry-grid,.source-list,.search-results { list-style:none; padding:0; margin:0; }.category-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:10px; }.category-grid li { min-height:126px; padding:17px 15px 14px; border:1px solid var(--line); border-radius:16px; background:rgba(255,253,248,.58); }.category-grid li.has-content { padding:0; border-color:#c8b592; background:var(--card); box-shadow:0 8px 24px rgba(50,62,55,.05); transition:transform .2s,border-color .2s,background .2s; }.category-grid li.has-content:hover { transform:translateY(-3px); border-color:#b89e74; background:#fffdf8; }.category-grid li.has-content>a { display:block; min-height:124px; padding:17px 15px 14px; border-radius:inherit; text-decoration:none; }.category-mark { display:grid; place-items:center; width:31px; height:31px; margin-bottom:16px; border:1px solid #d8c7aa; border-radius:50%; color:var(--cinnabar); font:700 .88rem var(--serif); }.category-name { display:block; font-weight:780; font-size:.88rem; }.category-grid small { display:block; margin-top:3px; color:var(--muted-readable); font-size:.75rem; }.category-grid .has-content small { color:var(--cinnabar); }
.entry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }.entry-grid li { min-width:0; }.entry-grid a { position:relative; display:flex; align-items:center; min-height:142px; padding:22px 56px 22px 22px; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:var(--card); text-decoration:none; transition:transform .2s,box-shadow .2s,border-color .2s; }.entry-grid a:hover { transform:translateY(-3px); border-color:#c4ad87; box-shadow:var(--shadow); }.entry-mark { display:grid; flex:0 0 auto; place-items:center; width:54px; height:54px; margin-right:18px; border-radius:16px; color:#f8ecdc; background:var(--jade); font:700 1.3rem var(--serif); }.entry-copy { display:flex; min-width:0; flex-direction:column; }.entry-copy small { color:var(--cinnabar); font-size:.75rem; font-weight:800; letter-spacing:.1em; }.entry-copy strong { margin:2px 0 4px; font:700 1.2rem var(--serif); }.entry-copy>span { display:-webkit-box; overflow:hidden; color:var(--muted-readable); font-size:.78rem; line-height:1.6; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.entry-arrow { position:absolute; right:22px; color:#9c8b70; font-size:1.15rem; }
.crumb { display:flex; gap:8px; margin-bottom:20px; color:var(--muted); font-size:.84rem; }.crumb a { text-decoration:none; }.detail { max-width:920px; margin:auto; }.detail-hero { display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:start; padding:42px; border:1px solid #d5cab7; border-radius:26px; background:linear-gradient(145deg,#fffdf8,#eee6d8); box-shadow:0 18px 55px rgba(48,57,51,.08); }.detail-mark { display:grid; place-items:center; width:78px; height:78px; border-radius:22px; color:#f5e9d7; background:linear-gradient(145deg,var(--jade),#286151); box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); font:700 2rem var(--serif); }.detail h1 { margin:9px 0 8px; font:700 clamp(2.5rem,6vw,4.5rem)/1.05 var(--serif); letter-spacing:-.05em; }.detail-hero p { max-width:660px; margin:0; color:var(--muted-readable); }.badges { display:flex; flex-wrap:wrap; gap:7px; }.badge { padding:4px 10px; border-radius:999px; font-size:.68rem; font-weight:800; }.badge-type { color:#f6ecdc; background:var(--jade); }.badge-state { color:#843a29; background:#efddcb; }.badge-fixture { color:#705d43; background:#e5ddce; }
.warning { margin:24px 0; padding:14px 18px; border-left:4px solid var(--cinnabar); border-radius:0 10px 10px 0; background:#fff1e8; }.article-body { margin:46px 0; color:var(--ink-soft); font-size:1.02rem; }.article-body h2,.article-body h3 { color:var(--ink); font-family:var(--serif); }.article-body p { margin:1.1em 0; }.article-body code { padding:.16em .38em; border-radius:5px; color:#7d3829; background:#ece3d5; }.article-body img { max-width:100%; height:auto; border-radius:14px; }.table-scroll { width:100%; max-width:100%; margin:24px 0; overflow-x:auto; border:1px solid var(--line); border-radius:14px; background:var(--card); }.article-body table { width:100%; min-width:720px; border-collapse:separate; border-spacing:0; font-size:.82rem; }.article-body th { color:#f7eddd; background:var(--jade); }.article-body th,.article-body td { padding:11px 12px; text-align:left; border-right:1px solid var(--line); border-bottom:1px solid var(--line); white-space:nowrap; }.article-body tr:last-child td { border-bottom:0; }.article-body th:last-child,.article-body td:last-child { border-right:0; }
.provenance { padding:28px; border:1px solid var(--line); border-radius:22px; background:var(--card); }.provenance .section-heading { align-items:center; margin-bottom:18px; }.provenance .section-heading h2 { font-size:1.55rem; }.review-date { color:var(--muted-readable); font-size:.76rem; }.source-list { display:grid; gap:10px; }.source-list li { display:flex; gap:13px; align-items:center; padding:13px; border-radius:12px; background:#f3eee4; }.source-index { display:grid; flex:0 0 auto; place-items:center; width:34px; height:34px; border-radius:50%; color:#fff; background:var(--cinnabar); font:700 .78rem var(--serif); }.source-list li div { display:flex; flex-direction:column; }.source-list a,.source-list strong { font-size:.85rem; font-weight:800; }.source-list li div span { color:var(--muted-readable); font-size:.75rem; }
.search-panel { max-width:900px; margin:34px auto 0; }.search-heading { text-align:center; }.search-heading h1 { margin:4px 0 8px; font:700 clamp(2.8rem,7vw,5rem)/1.1 var(--serif); letter-spacing:-.05em; }.search-heading>p:last-child { margin:0; color:var(--muted); }.search-box { display:flex; align-items:center; gap:12px; margin-top:38px; padding:8px 10px 8px 18px; border:1px solid #cdbfA8; border-radius:18px; background:#fff; box-shadow:0 16px 48px rgba(46,57,50,.1); transition:border-color .2s,box-shadow .2s; }.search-box:focus-within { border-color:var(--cinnabar); box-shadow:0 0 0 3px rgba(168,69,47,.14),0 16px 48px rgba(46,57,50,.1); }.search-box>span { color:var(--cinnabar); font:700 1.6rem var(--serif); }.search-box input { width:100%; min-width:0; padding:10px 0; border:0; outline:0; background:transparent; color:var(--ink); font:1rem/1.5 inherit; }.search-box kbd { padding:5px 8px; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:#f3eee5; font:600 .65rem inherit; }.search-meta { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:14px 4px 0; color:var(--muted-readable); font-size:.78rem; }.search-meta p { margin:0; }.search-category-context { display:flex; align-items:center; gap:8px; }.search-category-chip { padding:4px 9px; border:1px solid #cdbd9f; border-radius:999px; color:var(--jade); background:#efe6d8; font-weight:800; }.search-category-clear { padding:4px 8px; border:0; color:var(--cinnabar); background:transparent; cursor:pointer; font:inherit; font-weight:750; }.search-category-clear:hover { text-decoration:underline; text-underline-offset:3px; }.quick-search { display:flex; align-items:center; gap:7px; }.quick-search button { padding:4px 9px; border:1px solid var(--line); border-radius:999px; color:var(--ink-soft); background:transparent; cursor:pointer; font:inherit; }.quick-search button:hover { border-color:var(--cinnabar); color:var(--cinnabar); }
.search-results { display:grid; gap:12px; margin-top:34px; }.search-results a { position:relative; display:flex; flex-direction:column; padding:20px 58px 20px 22px; border:1px solid var(--line); border-radius:17px; background:var(--card); text-decoration:none; transition:transform .2s,box-shadow .2s; }.search-results a:hover { transform:translateY(-2px); box-shadow:var(--shadow); }.result-top { display:flex; gap:10px; align-items:center; margin-bottom:5px; color:var(--cinnabar); }.result-top small { font-size:.68rem; font-weight:800; letter-spacing:.08em; }.result-state { padding-left:10px; border-left:1px solid var(--line); color:var(--muted-readable)!important; }.search-results strong { font:700 1.25rem var(--serif); }.result-summary { margin-top:4px; color:var(--muted-readable); font-size:.8rem; }.result-arrow { position:absolute; right:22px; top:50%; transform:translateY(-50%); color:#9c8b70; }.search-empty { margin-top:50px; text-align:center; color:var(--muted); }.search-empty[hidden] { display:none; }.search-empty>span { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 15px; border:1px solid #d2c4ac; border-radius:50%; color:var(--cinnabar); font:700 1.4rem var(--serif); }.search-empty strong { display:block; color:var(--ink); font-family:var(--serif); }.search-empty p { margin:4px 0; font-size:.8rem; }
footer { padding:42px 20px; text-align:center; color:var(--muted); border-top:1px solid var(--line); background:rgba(235,228,214,.48); }.footer-mark { color:var(--cinnabar); font-size:.7rem; font-weight:900; letter-spacing:.3em; }.footer-mark::before,.footer-mark::after { display:inline-block; width:32px; height:1px; margin:0 10px 3px; content:""; background:#c7b79d; }.footer-note,footer p { margin:8px 0 0; font-size:.76rem; }.footer-note { opacity:.75; }
@media (max-width:1000px) { .category-grid { grid-template-columns:repeat(4,1fr); }.hero { grid-template-columns:1fr; }.hero-card { display:grid; grid-template-columns:auto 1fr; column-gap:26px; align-items:center; }.hero-card .seal { grid-row:1/4; margin:0; }.hero-card>p,.hero-card>strong { text-align:left; }.hero-card>strong { margin:0 0 8px; }.hero-card dl { padding-top:12px; } }
@media (max-width:700px) { main { padding-top:20px; }.topbar { height:66px; padding:0 13px; }.brand-copy small,.topbar nav>a:first-child { display:none; }.topbar nav { gap:8px; }.hero { min-height:0; padding:42px 24px; border-radius:22px; }.hero h1 { font-size:2.75rem; }.hero-intro { font-size:.94rem; }.hero-card { display:block; }.hero-card .seal { margin:0 auto 22px; }.hero-card>p,.hero-card>strong { text-align:center; }.archive-note { width:calc(100% - 20px); padding:15px; }.archive-note p { line-height:1.5; }.category-grid li { min-height:112px; padding:13px 11px; }.category-name { font-size:.78rem; }.entry-grid a { min-height:130px; padding-left:16px; }.detail-hero { grid-template-columns:1fr; padding:26px 22px; }.detail-mark { width:58px; height:58px; border-radius:16px; }.detail h1 { font-size:2.7rem; }.provenance { padding:21px; }.provenance .section-heading { display:flex; }.review-date { display:none; }.search-panel { margin-top:12px; }.search-heading h1 { font-size:3.2rem; }.search-box { margin-top:28px; }.search-meta { display:block; }.quick-search { margin-top:10px; }.search-box kbd { display:none; } }
@media (max-width:420px) { .category-grid { grid-template-columns:repeat(2,1fr); }.hero-actions .button { width:100%; }.entry-mark { width:45px; height:45px; margin-right:13px; }.footer-note { padding:0 18px; } }

/* Source archive media */
.entry-image { width:86px; height:86px; flex:0 0 auto; margin-right:18px; border-radius:14px; object-fit:cover; background:#e7dfd1; }
.detail-cover { display:block; width:calc(100% - 60px); max-height:420px; margin:-1px auto 38px; border-radius:0 0 22px 22px; object-fit:cover; box-shadow:0 16px 44px rgba(38,49,42,.12); }
.article-body blockquote { margin:26px 0; padding:16px 20px; border-left:4px solid var(--gold); border-radius:0 12px 12px 0; color:#5e5a4e; background:#eee7d9; }
.wide-banner { display:block; width:100%; max-height:360px; object-fit:cover; }
.media-grid,.sprite-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:28px 0; }
.media-grid figure,.sprite-grid figure { min-width:0; margin:0; padding:10px; border:1px solid var(--line); border-radius:16px; background:var(--card); }
.media-grid a,.sprite-grid a { display:grid; place-items:center; overflow:hidden; border-radius:11px; background:#e9e2d5; }
.media-grid img { width:100%; height:260px; object-fit:contain; }
.media-grid figcaption,.sprite-grid figcaption { padding:9px 3px 2px; color:var(--ink-soft); font-size:.76rem; text-align:center; }
.sprite-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; }
.sprite-grid figure { padding:7px; }
.sprite-grid img { width:100%; height:82px; image-rendering:pixelated; object-fit:contain; }
.resource-catalog { display:grid; gap:8px; margin:28px 0; padding:0; list-style:none; }
.resource-catalog li { display:grid; grid-template-columns:54px 1fr; align-items:center; gap:12px; padding:11px 14px; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.resource-catalog li>span { padding:3px 7px; border-radius:999px; color:#fff; background:var(--jade); font-size:.68rem; text-align:center; }
.resource-catalog a { text-decoration:none; }
.resource-catalog a:hover { color:var(--cinnabar); }
.experience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.experience-card { position:relative; isolation:isolate; display:grid; grid-template-columns:auto 1fr; gap:20px; min-height:250px; padding:30px; overflow:hidden; border-radius:24px; color:#f9f2e6; text-decoration:none; box-shadow:0 18px 50px rgba(34,48,41,.16); transition:transform .2s,box-shadow .2s; }
.experience-card::after { position:absolute; z-index:-1; right:-70px; bottom:-110px; width:260px; height:260px; content:""; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 38px rgba(255,255,255,.035); }
.experience-card:hover { transform:translateY(-4px); box-shadow:0 24px 60px rgba(34,48,41,.24); }
.atlas-card { background:linear-gradient(140deg,#142b24,#35533b 62%,#8d6036); }
.monster-card { background:linear-gradient(140deg,#2a2020,#6b3029 62%,#9a653e); }
.experience-mark { display:grid; place-items:center; width:58px; height:58px; border:1px solid rgba(240,210,155,.48); border-radius:50%; color:#f3d49c; font:700 1.35rem var(--serif); }
.experience-card small { color:#e4c796; font-size:.7rem; font-weight:850; letter-spacing:.12em; }
.experience-card h3 { margin:5px 0 10px; font:700 1.7rem/1.25 var(--serif); }
.experience-card p { margin:0 0 20px; color:rgba(255,255,255,.72); font-size:.86rem; line-height:1.75; }
.experience-card strong { color:#f1d29b; font-size:.82rem; }
.palspeed-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.palspeed-card { display:grid; grid-template-columns:auto 1fr; gap:16px; min-height:190px; padding:24px; border:1px solid #cdbd9f; border-radius:20px; background:linear-gradient(145deg,#fffdf8,#ece3d4); text-decoration:none; box-shadow:0 10px 30px rgba(45,57,50,.07); transition:transform .2s,box-shadow .2s,border-color .2s; }
.palspeed-card:hover { transform:translateY(-3px); border-color:#a98658; box-shadow:var(--shadow); }
.palspeed-card>span { display:grid; place-items:center; width:48px; height:48px; border-radius:15px; color:#f8eddd; background:var(--cinnabar); font:700 1.1rem var(--serif); }
.palspeed-card small { color:var(--cinnabar); font-size:.62rem; font-weight:850; letter-spacing:.1em; }
.palspeed-card h3 { margin:3px 0 8px; font:700 1.42rem var(--serif); }
.palspeed-card p { margin:0 0 14px; color:var(--muted-readable); font-size:.78rem; line-height:1.65; }
.palspeed-card strong { color:var(--jade-light); font-size:.76rem; }
.palspeed-jump { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:24px 0; padding:14px 16px; border:1px solid #cdbd9f; border-radius:16px; background:#eee6d8; }
.palspeed-jump>strong { font:700 1rem var(--serif); }
.palspeed-jump>span { display:flex; flex-wrap:wrap; gap:9px; }
.palspeed-jump a { padding:7px 13px; border:1px solid var(--line); border-radius:999px; background:var(--card); text-decoration:none; font-size:.78rem; font-weight:750; }
.palspeed-jump a[aria-current="page"] { border-color:var(--jade); color:#fff; background:var(--jade); }
.palspeed-player-tools { margin:28px 0; padding:24px; border:1px solid #c8b18d; border-radius:20px; background:var(--card); }
.palspeed-player-tools h2 { margin:0; }.palspeed-player-tools>div>p { margin:3px 0 18px; color:var(--muted-readable); font-size:.84rem; }
.palspeed-player-tools label { display:block; margin-bottom:6px; font-size:.78rem; font-weight:750; }
.palspeed-player-tools input { width:100%; min-height:46px; padding:9px 13px; border:1px solid #bca98a; border-radius:12px; color:var(--ink); background:#fff; font:inherit; }
.palspeed-player-status { margin:10px 0; color:var(--muted-readable); font-size:.78rem; }
.palspeed-player-index { display:flex; flex-wrap:wrap; gap:7px; max-height:190px; overflow-y:auto; padding:3px; }
.palspeed-player-index a { padding:4px 9px; border:1px solid var(--line); border-radius:999px; text-decoration:none; font-size:.75rem; }
.palspeed-player-tools::after { display:block; margin-top:8px; color:var(--muted-readable); content:"索引区域可滚动，查看更多玩家"; font-size:.75rem; text-align:right; }
.palspeed-records { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; margin:28px 0; }
.palspeed-record { min-width:0; padding:24px; scroll-margin-top:96px; border:1px solid var(--line); border-radius:18px; background:var(--card); box-shadow:0 8px 24px rgba(45,57,50,.05); }
.palspeed-record header small { color:var(--cinnabar); font-size:.63rem; font-weight:850; letter-spacing:.12em; }
.palspeed-record header h2 { margin:3px 0 5px; }
.palspeed-record header p { display:flex; flex-wrap:wrap; gap:12px; margin:0; color:var(--muted-readable); font-size:.76rem; }
.palspeed-profile { display:grid; grid-template-columns:128px minmax(0,1fr); gap:0 22px; align-items:start; }
.palspeed-avatar-wrap { grid-row:1/3; width:128px; text-align:center; }
.palspeed-bio { grid-column:2; }
.palspeed-profile h3 { margin:18px 0 5px; font-size:1rem; }
.palspeed-profile>div>p { margin:0; }
.palspeed-avatar { width:128px; height:128px; border:1px solid var(--line); border-radius:18px; object-fit:cover; background:#ebe4d8; }
.palspeed-avatar.is-placeholder { border-style:dashed; filter:saturate(.7); }
.palspeed-avatar-note { display:block; margin-top:5px; color:var(--muted-readable); font-size:.75rem; }
.palspeed-record details { margin-top:14px; border-top:1px solid var(--line); }
.palspeed-record summary { padding:12px 0 3px; cursor:pointer; color:var(--jade); font-weight:750; }
.palspeed-record footer { margin:18px -24px -24px; padding:13px 24px; border-radius:0 0 18px 18px; text-align:left; background:#f0e9dc; }
.palspeed-record footer a { color:var(--jade-light); font-size:.75rem; font-weight:750; }
.palspeed-results { display:grid; gap:7px; padding:0; list-style:none; }
.palspeed-results li { display:flex; justify-content:space-between; gap:18px; padding:7px 10px; border-radius:8px; background:#f1ebe0; font-size:.76rem; }
.palspeed-results a { font-weight:750; }
.palspeed-results li span { color:var(--muted-readable); }
.palspeed-best { padding:10px 13px; border-left:3px solid var(--gold); background:#f1eadc; }
.palspeed-card-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:12px; }
.palspeed-card-gallery a { display:grid; place-items:center; min-width:0; overflow:hidden; border-radius:12px; background:#eae2d5; }
.palspeed-card-gallery img { width:100%; height:auto; max-height:520px; object-fit:contain; }
.resource-checksum code { overflow-wrap:anywhere; word-break:break-word; }
.palspeed-relationships { margin:28px 0; padding:26px; border:1px solid #c8b18d; border-radius:20px; background:linear-gradient(145deg,#fffaf0,#e8decd); }
.palspeed-relationships>h2 { margin:0; }
.palspeed-relationships>p,.relationship-direction { color:var(--muted-readable); }
.relationship-list,.relationship-nodes { display:grid; gap:8px; padding:0; list-style:none; }
.relationship-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.relationship-list li { display:grid; grid-template-columns:1fr auto auto auto 1fr; gap:7px; align-items:center; padding:10px 12px; border-radius:10px; background:var(--card); font-size:.78rem; }
.relationship-list li strong:last-child { text-align:right; }
.relationship-list li span:not([aria-hidden]) { padding:2px 8px; border-radius:999px; color:#fff; background:var(--cinnabar); font-size:.75rem; }
.relationship-list li span[aria-hidden] { color:#8b7656; }
.relationship-nodes { grid-template-columns:repeat(4,minmax(0,1fr)); }
.relationship-nodes li { display:flex; flex-direction:column; padding:9px 11px; border-radius:9px; background:var(--card); font-size:.75rem; }
.relationship-nodes span { color:var(--muted-readable); font-size:.75rem; }
.palspeed-player-index a:hover,.palspeed-jump a:hover { border-color:#a98658; color:var(--cinnabar); background:#fffaf0; }
.palspeed-record summary:hover,.palspeed-record details[open]>summary,.palspeed-relationships details[open]>summary { color:var(--cinnabar); }
.palspeed-record[id^="palspeed-resource-"] .resource-checksum { display:grid; gap:6px; margin:16px 0 0; padding:11px 13px; border:1px solid #d6c5a9; border-radius:12px; background:#f6efe3; }
.palspeed-record[id^="palspeed-resource-"] .resource-checksum::before { color:var(--muted-readable); content:"校验值"; font-size:.72rem; font-weight:800; letter-spacing:.08em; }
.palspeed-record[id^="palspeed-resource-"] .resource-checksum code { display:block; padding:0; background:transparent; }
.palspeed-record[id^="palspeed-resource-"] footer a { display:inline-flex; align-items:center; min-height:30px; margin:2px 0; padding:3px 8px; border:1px solid #cdbd9f; border-radius:999px; background:rgba(255,253,248,.72); text-decoration:none; }
@media (max-width:730px) {
  .palspeed-section .section-heading { display:block; }
  .palspeed-section .section-heading>p { display:block; margin-top:8px; }
}
@media (min-width:521px) and (max-width:900px) {
  .palspeed-card { grid-template-columns:minmax(0,1fr); align-content:start; gap:13px; padding:20px; }
  .palspeed-card small { letter-spacing:.06em; }
}
.palspeed-record[id^="palspeed-match-"] .table-scroll table { min-width:100%; table-layout:fixed; }
.palspeed-record[id^="palspeed-match-"] .table-scroll th:first-child,
.palspeed-record[id^="palspeed-match-"] .table-scroll td:first-child { width:64%; }
.palspeed-record[id^="palspeed-match-"] .table-scroll th:last-child,
.palspeed-record[id^="palspeed-match-"] .table-scroll td:last-child { width:36%; white-space:normal; }
@media (max-width:700px) {
  .experience-card { min-height:0; padding:23px 20px; }
  .experience-mark { width:48px; height:48px; }
  .experience-card h3 { font-size:1.45rem; }
  .entry-image { width:70px; height:70px; margin-right:13px; }
  .detail-cover { width:calc(100% - 24px); max-height:260px; margin-bottom:28px; }
  .media-grid { grid-template-columns:1fr; }
  .media-grid img { height:auto; max-height:360px; }
  .sprite-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sprite-grid img { height:74px; }
  .resource-catalog li { grid-template-columns:46px 1fr; padding:10px; }
  .palspeed-card { min-height:0; padding:20px; }
  .palspeed-record { padding:18px; }
  .palspeed-record footer { margin:16px -18px -18px; padding:12px 18px; }
  .palspeed-jump { align-items:flex-start; flex-direction:column; }
  .palspeed-player-tools { padding:18px; }
  .palspeed-profile { grid-template-columns:74px minmax(0,1fr); gap:0 14px; }
  .palspeed-avatar-wrap { grid-row:1; width:74px; }
  .palspeed-identity { grid-column:2; }
  .palspeed-bio { grid-column:1/-1; }
  .palspeed-avatar { width:74px; height:74px; border-radius:13px; }
  .palspeed-results li { display:block; }
  .palspeed-results li span { display:block; }
  .palspeed-card-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .palspeed-relationships { padding:19px; }
  .relationship-list { grid-template-columns:1fr; }
  .relationship-nodes { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:561px) and (max-width:700px) {
  .hero-card { display:grid; grid-template-columns:auto 1fr; column-gap:26px; align-items:center; }
  .hero-card .seal { grid-row:1/4; margin:0; }
  .hero-card>p,.hero-card>strong { text-align:left; }
  .hero-card>strong { margin:0 0 8px; }
  .hero-card dl { padding-top:12px; }
}
@media (max-width:680px) { .palspeed-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) {
  .section-heading { display:block; }
  .section-heading>p,.section-heading>a { display:block; margin-top:8px; }
  .provenance .section-heading { display:flex; }
  .category-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:620px) { .experience-grid,.entry-grid { grid-template-columns:1fr; } }
@media (max-width:520px) { .palspeed-grid { grid-template-columns:1fr; } }
@media (max-width:420px) { .category-grid { grid-template-columns:repeat(2,1fr); } }

/* Competition records and local memory player */
.competition-home { margin-top:88px; }
.competition-home-card { display:grid; grid-template-columns:auto 1fr; gap:24px; padding:30px; color:inherit; text-decoration:none; border:1px solid var(--line); border-radius:24px; background:linear-gradient(135deg,#fffdf8,#ebe0cb); box-shadow:var(--shadow); }
.competition-home-card>span { width:74px; height:74px; display:grid; place-items:center; color:#f4e7cf; font:700 2rem var(--serif); border-radius:50%; background:var(--cinnabar); box-shadow:inset 0 0 0 7px rgba(255,255,255,.18); }
.competition-home-card small,.competition-home-card strong { color:var(--cinnabar); font-weight:800; }
.competition-home-card h3 { margin:3px 0 6px; font:700 clamp(1.4rem,3vw,2rem)/1.2 var(--serif); }
.competition-home-card p { margin:0 0 10px; color:var(--ink-soft); }
.competition-index,.editor-shell,.competition-detail { width:min(100% - 40px,1080px); margin:64px auto 100px; }
.competition-index>header,.editor-shell>header { max-width:820px; margin-bottom:40px; }
.competition-index h1,.editor-shell h1,.competition-hero h1 { margin:4px 0 14px; font:700 clamp(2.2rem,6vw,4.4rem)/1.05 var(--serif); }
.competition-index>header>p,.editor-shell>header>p,.competition-hero>p { color:var(--ink-soft); font-size:1.05rem; }
.competition-index>header>div { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.competition-index .button-ghost,.editor-shell .button-ghost { color:var(--jade); border-color:#b8a98f; background:transparent; }
.competition-index .button-hot { gap:9px; color:var(--cinnabar); border-color:var(--cinnabar); background:linear-gradient(135deg,#fff3ea,#ffe2d2); box-shadow:0 0 0 1px rgba(214,72,40,.5),0 0 14px 2px rgba(230,70,35,.4); animation:hot-glow 1.8s ease-in-out infinite; }
.competition-index .button-hot::before { content:""; width:8px; height:8px; border-radius:50%; background:#e0452a; animation:hot-dot 1.8s ease-out infinite; }
.competition-index .button-hot:hover { color:#fff8e8; background:var(--cinnabar); }.competition-index .button-hot:hover::before { background:#fff8e8; }
@keyframes hot-glow { 0%,100% { box-shadow:0 0 0 1px rgba(214,72,40,.5),0 0 14px 2px rgba(230,70,35,.4); } 50% { box-shadow:0 0 0 2px rgba(230,70,35,.8),0 0 30px 8px rgba(240,85,40,.6); } }
@keyframes hot-dot { 0% { box-shadow:0 0 0 0 rgba(224,69,42,.6); } 70%,100% { box-shadow:0 0 0 7px rgba(224,69,42,0); } }
@media (prefers-reduced-motion:reduce) { .competition-index .button-hot,.competition-index .button-hot::before { animation:none; } }
.competition-list { margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; list-style:none; }
.competition-list a,.competition-list .competition-empty { min-height:220px; padding:25px; display:flex; flex-direction:column; color:inherit; text-decoration:none; border:1px solid var(--line); border-radius:20px; background:var(--card); box-shadow:0 12px 34px rgba(43,55,47,.07); }
.competition-list small { color:var(--cinnabar); font-weight:750; }
.competition-list strong { margin:8px 0; font:700 1.45rem var(--serif); }
.competition-list span { color:var(--ink-soft); }
.competition-list em { margin-top:auto; padding-top:14px; color:var(--jade-light); font-style:normal; font-weight:800; }
.competition-flow { margin-top:28px; padding:20px 24px; display:flex; flex-wrap:wrap; align-items:center; gap:12px; border:1px dashed #b9aa91; border-radius:16px; color:var(--ink-soft); background:rgba(255,253,248,.58); }
.competition-flow strong { color:var(--ink); }
.competition-flow i { color:var(--cinnabar); font-style:normal; }
.competition-hero { margin:16px 0 36px; padding:clamp(28px,6vw,58px); color:#f7f0e2; border-radius:28px; background:radial-gradient(circle at 86% 12%,rgba(199,155,85,.34),transparent 31%),linear-gradient(135deg,#173d33,#102a24); box-shadow:var(--shadow); }
.competition-hero>p { max-width:720px; color:#d9e1dc; }
.competition-hero>div { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.competition-hero>div span { padding:5px 10px; border:1px solid rgba(255,255,255,.2); border-radius:999px; font-size:.82rem; }
.competition-block { margin:24px 0; padding:clamp(22px,4vw,38px); border:1px solid var(--line); border-radius:22px; background:var(--card); }
.competition-block>h2 { margin-top:0; font-family:var(--serif); }
.competition-split { display:grid; grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr); gap:24px; }
.participant-list { columns:2; padding-left:24px; }
.rule-links { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 0; padding:0; list-style:none; }
.rule-links a { display:block; padding:7px 12px; border:1px solid var(--line); border-radius:999px; }
.leaderboard-grid { display:grid; gap:16px; }
.leaderboard { overflow:hidden; border:1px solid var(--line); border-radius:16px; }
.leaderboard>header { padding:14px 18px; display:flex; align-items:baseline; justify-content:space-between; gap:15px; color:#f6efe3; background:var(--jade); }
.leaderboard>header span { color:#d7bd8d; font-weight:800; }
.leaderboard>header h3 { margin:0; font-family:var(--serif); }
.leaderboard table { margin:0; }
.champion { display:inline-block; margin-left:8px; padding:2px 7px; color:#7c2e1f; border-radius:999px; background:#f0cf7a; font-size:.72rem; vertical-align:middle; }
.pack-list { margin:0; padding:0; list-style:none; }
.pack-list li { padding:14px 0; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--line); }
.pack-list li:last-child { border-bottom:0; }
.pack-list div { display:flex; flex-direction:column; }
.pack-list span { color:var(--muted-readable); }
.pack-list a { color:var(--cinnabar); font-weight:800; }
.recognition { padding:16px 20px; color:var(--ink-soft); border-left:4px solid var(--gold); background:rgba(255,253,248,.65); }
.editor-shell form { padding:clamp(20px,4vw,36px); border:1px solid var(--line); border-radius:24px; background:var(--card); box-shadow:var(--shadow); }
.editor-actions { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:26px; }
.editor-actions input[type=file] { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; }
.editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.editor-grid label { display:grid; gap:6px; color:var(--ink-soft); font-weight:700; }
.editor-grid .editor-wide { grid-column:1/-1; }
.editor-grid input,.editor-grid select,.editor-grid textarea { width:100%; padding:11px 13px; color:var(--ink); border:1px solid #cfc2ae; border-radius:10px; background:#fffefa; font:inherit; font-weight:400; }
.editor-grid textarea { resize:vertical; }
.editor-status { min-height:1.7em; margin:20px 0 0; color:var(--jade-light); }
.music-player { width:min(100% - 40px,1080px); margin:70px auto 42px; padding:22px 24px; display:grid; grid-template-columns:auto minmax(170px,1fr) minmax(220px,.8fr); align-items:center; gap:20px; border:1px solid rgba(199,155,85,.55); border-radius:22px; background:linear-gradient(135deg,#172e28,#0d211c); box-shadow:0 20px 60px rgba(20,37,31,.2); color:#f3eadc; }
.vinyl { position:relative; width:92px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:repeating-radial-gradient(circle,#10110f 0 4px,#23231f 5px 7px,#121310 8px 11px); box-shadow:0 8px 22px rgba(0,0,0,.38); }
.vinyl::before { position:absolute; width:35%; aspect-ratio:1; content:""; border-radius:50%; background:var(--cinnabar); box-shadow:inset 0 0 0 4px rgba(255,255,255,.12); }
.vinyl span { z-index:1; color:#f3dcae; font:700 .62rem var(--serif); }
.is-playing .vinyl { animation:vinyl-spin 5s linear infinite; }
@keyframes vinyl-spin { to { transform:rotate(360deg); } }
.music-copy { min-width:0; display:flex; flex-direction:column; }
.music-copy small { color:#c7a970; font-size:.7rem; letter-spacing:.12em; }
.music-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 1.25rem var(--serif); }
.music-copy span { overflow:hidden; color:#b9c6c0; text-overflow:ellipsis; white-space:nowrap; font-size:.84rem; }
.music-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.music-controls select,.music-controls button { min-height:42px; padding:7px 10px; color:#f3eadc; border:1px solid rgba(255,255,255,.2); border-radius:9px; background:#203b33; font:inherit; }
.music-controls button { cursor:pointer; font-weight:800; }
.music-progress { grid-column:2/-1; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }
.music-progress input { width:100%; accent-color:var(--gold); }
.music-progress span { color:#b9c6c0; font:12px ui-monospace,monospace; }
.music-player.is-empty { opacity:.78; }
.global-mute { position:fixed; right:18px; bottom:18px; z-index:25; min-width:52px; min-height:44px; padding:8px 13px; color:#f7f0e2; border:1px solid rgba(255,255,255,.24); border-radius:999px; background:rgba(24,63,53,.94); box-shadow:0 8px 28px rgba(20,37,31,.24); font:700 .82rem inherit; backdrop-filter:blur(8px); }
.global-mute:disabled { opacity:.5; }
.footer-filing { margin-top:8px!important; }
.footer-filing a { color:inherit; text-decoration:none; }
.footer-filing a:hover { text-decoration:underline; }

@media (prefers-reduced-motion:reduce) { .is-playing .vinyl { animation:none; } }
@media (max-width:760px) {
  .competition-index,.editor-shell,.competition-detail { width:min(100% - 24px,1080px); margin-top:36px; }
  .competition-list,.competition-split { grid-template-columns:1fr; }
  .competition-flow i { transform:rotate(90deg); }
  .music-player { width:min(100% - 24px,1080px); grid-template-columns:68px minmax(0,1fr); gap:14px; }
  .vinyl { width:68px; }
  .music-controls,.music-progress { grid-column:1/-1; }
  .global-mute { right:10px; bottom:10px; }
}
@media (max-width:560px) {
  .topbar { padding-inline:12px; }
  .topbar nav { gap:8px; }
  .topbar nav a { font-size:.82rem; }
  .nav-search { display:none; }
  .competition-home-card { grid-template-columns:1fr; }
  .competition-home-card>span { width:58px; height:58px; }
  .editor-grid { grid-template-columns:1fr; }
  .editor-grid .editor-wide { grid-column:auto; }
  .participant-list { columns:1; }
  .pack-list li,.leaderboard>header { align-items:flex-start; flex-direction:column; }
  .music-controls { grid-template-columns:1fr auto; }
}
