:root{--bg:#f2f5f6;--fg:#12222a;--muted:#5d7280;--accent:#0f7f7a;--line:#dbe4e7;--card:#ffffff;--base:16px;--ratio:1.36;--lh:1.78;--hw:700;--ls:0.2px;--radius:10px;--bw:1px;--shadow:0 1px 2px rgba(0,0,0,.06);--cols:4;--gap:12px;--pad:12px;--imgr:4/3;}

*{box-sizing:border-box}
body.gp-body{margin:0;background:var(--bg);color:var(--fg);font-family:'Noto Serif SC', Georgia, 'Songti SC', serif;font-size:var(--base);line-height:var(--lh)}
a{color:var(--fg);text-decoration:none}
img{max-width:100%;display:block}
.gp-head{border-bottom:1px solid var(--line);background:var(--card)}
.gp-head-in{max-width:1180px;margin:0 auto;padding:calc(var(--pad)/1.4) var(--pad);display:flex;align-items:center;gap:calc(var(--gap)*1.6)}
.gp-logo b{font-size:calc(var(--base)*1.35);letter-spacing:var(--ls)}.gp-logo i{display:block;font-style:normal;color:var(--muted);font-size:max(12px,calc(var(--base)*.74));margin-top:2px}
.gp-nav ul{display:flex;gap:calc(var(--gap)*.8);list-style:none;margin:0;padding:0}
.gp-nav a{padding:6px 10px;border:var(--bw) solid transparent;border-radius:var(--radius)}
.gp-nav a:hover{border-color:var(--accent);color:var(--accent)}
.gp-wrap{max-width:1180px;margin:0 auto;padding:calc(var(--pad)*1.2) var(--pad) calc(var(--pad)*3)}
h1{font-size:calc(var(--base)*var(--ratio)*var(--ratio)*1.15);line-height:1.3;font-weight:700;margin:0 0 12px}
.gp-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-bottom:calc(var(--pad)*1.6)}
.gp-hero-it{position:relative;border-radius:var(--radius);overflow:hidden;border:var(--bw) solid var(--line);box-shadow:var(--shadow)}
.gp-hero-it figcaption{position:absolute;inset:auto 0 0 0;background:linear-gradient(transparent,var(--bg));padding:18px 14px 12px;font-weight:600}
.gp-sec{margin:calc(var(--pad)*1.8) 0}
.gp-sec-h{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--accent);padding-bottom:6px;margin-bottom:calc(var(--gap)*1.1)}
.gp-sec-h h2{font-size:calc(var(--base)*1.18);margin:0;font-weight:var(--hw)}
.gp-sec-h span{color:var(--muted);font-size:max(12px,calc(var(--base)*.78))}
.gp-grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:var(--gap)}
.gp-card{border:var(--bw) solid var(--line);border-radius:var(--radius);background:var(--card);padding:var(--pad);box-shadow:var(--shadow)}
.gp-thumb{margin:0 0 10px;position:relative;aspect-ratio:var(--imgr);background:var(--line);border-radius:calc(var(--radius)/1.6);overflow:hidden}
.gp-thumb img{width:100%;height:100%;object-fit:cover}
.gp-badge{position:absolute;left:8px;top:8px;background:var(--accent);color:var(--bg);font-size:max(12px,calc(var(--base)*.68));padding:2px 7px;border-radius:calc(var(--radius)/2)}
.gp-card-t{margin:0;font-size:max(12px,calc(var(--base)*.95));font-weight:600;line-height:1.45}
.gp-card-m{margin:8px 0 0;color:var(--muted);font-size:max(12px,calc(var(--base)*.74));display:flex;gap:10px;flex-wrap:wrap}
.gp-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:calc(var(--gap)*.7)}
.gp-tile{display:block;padding:14px;border:var(--bw) solid var(--line);border-radius:var(--radius);background:var(--card)}
.gp-tile b{display:block;font-weight:600}.gp-tile em{font-style:normal;color:var(--muted);font-size:max(12px,calc(var(--base)*.74))}
.gp-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.gp-chips a{border:var(--bw) solid var(--line);border-radius:calc(var(--radius)*3);padding:5px 12px;font-size:max(12px,calc(var(--base)*.82));background:var(--card)}
.gp-chips a:hover{border-color:var(--accent);color:var(--accent)}
.gp-rows{list-style:none;margin:0;padding:0}
.gp-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line)}
.gp-row-f{color:var(--muted);font-size:max(12px,calc(var(--base)*.76));white-space:nowrap}
.gp-crumb{color:var(--muted);font-size:max(12px,calc(var(--base)*.78));margin-bottom:10px}
.gp-detail{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:calc(var(--gap)*1.4)}
.gp-fig{margin:0 0 16px;aspect-ratio:var(--imgr);background:var(--line);border-radius:var(--radius);overflow:hidden}
.gp-fig img{width:100%;height:100%;object-fit:cover}
.gp-facts{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:max(12px,calc(var(--base)*.85))}
.gp-facts th,.gp-facts td{border:var(--bw) solid var(--line);padding:7px 10px;text-align:left}
.gp-facts th{width:30%;color:var(--muted);font-weight:500;background:var(--card)}
.gp-prose p{margin:0 0 12px}
.gp-side h2{font-size:calc(var(--base)*1.02);margin:0 0 10px;border-bottom:1px solid var(--line);padding-bottom:6px}
.gp-pager{display:flex;gap:8px;flex-wrap:wrap;margin-top:calc(var(--pad)*1.3)}
.gp-pager a,.gp-pager b{border:var(--bw) solid var(--line);border-radius:var(--radius);padding:6px 12px;background:var(--card)}
.gp-pager b{border-color:var(--accent);color:var(--accent)}
.gp-foot{border-top:1px solid var(--line);background:var(--card);margin-top:calc(var(--pad)*2)}
.gp-foot-cols{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);padding:calc(var(--pad)*1.4) var(--pad)}
.gp-foot h4{margin:0 0 8px;font-size:max(12px,calc(var(--base)*.9))}
.gp-foot ul{list-style:none;margin:0;padding:0;columns:2}
.gp-foot li{margin:0 0 4px;font-size:max(12px,calc(var(--base)*.78));color:var(--muted)}
.gp-foot-note{max-width:1180px;margin:0 auto;padding:0 var(--pad) calc(var(--pad)*1.2);color:var(--muted);font-size:max(12px,calc(var(--base)*.72))}
.gp-intro{color:var(--muted);margin:0 0 calc(var(--pad)*1.2)}
@media(max-width:820px){.gp-detail{grid-template-columns:1fr}.gp-hero{grid-template-columns:1fr}.gp-grid{grid-template-columns:repeat(2,1fr)}
.gp-head-in{flex-wrap:wrap}.gp-foot-cols{grid-template-columns:1fr 1fr}}


@media(max-width:820px){
.gp-nav a{padding:10px 9px;display:inline-block;white-space:nowrap}
.gp-nav ul{gap:2px}
.gp-head-in{gap:8px;padding:10px 12px}
h1{font-size:calc(var(--base)*1.32);line-height:1.3}
.gp-hero{grid-template-columns:1fr}
.gp-chips a{padding:9px 13px;display:inline-block}
.gp-rows .gp-row{padding:11px 0}
.gp-rows .gp-row a{display:inline-block;padding:9px 0}
.gp-pager a,.gp-pager b{padding:10px 14px;display:inline-block}
.gp-foot li a{display:inline-block;padding:4px 0}
.gp-tile{padding:16px}
}
