:root {
  --navy:#082f57;
  --blue:#0b4a80;
  --gold:#bd9560;
  --ink:#13283b;
  --muted:#607286;
  --line:#dbe4ec;
  --paper:#fff;
  --wash:#f4f7f9;
  --shadow:0 18px 50px rgba(12,45,75,.09);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
  color:var(--ink);
  background:var(--wash);
  font-synthesis:none;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:linear-gradient(180deg,#f8fafb 0,#f3f7f9 55%,#eef3f6 100%); line-height:1.65; }
a { color:inherit; }
.skip-link { position:fixed; left:16px; top:-60px; z-index:99; background:#fff; padding:10px 15px; border-radius:8px; }
.skip-link:focus { top:16px; }
.site-header { min-height:76px; display:flex; align-items:center; gap:30px; padding:12px max(24px,calc((100vw - 1180px)/2)); border-bottom:1px solid rgba(8,47,87,.1); background:rgba(255,255,255,.9); backdrop-filter:blur(18px); position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--navy); white-space:nowrap; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:var(--navy); color:#fff; font-size:13px; font-weight:850; letter-spacing:.08em; }
.brand b,.brand small { display:block; }
.brand b { font-size:16px; }
.brand small { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:800; }
.site-header nav { display:flex; gap:25px; margin-left:auto; }
.site-header nav a,.group-link { text-decoration:none; color:#53687b; font-size:14px; font-weight:650; }
.site-header nav a:hover,.group-link:hover { color:var(--navy); }
.group-link { padding:8px 12px; border:1px solid var(--line); border-radius:999px; }
main:not(.paper-detail):not(.guide-page):not(.rss-page):not(.construction-page) { width:min(1180px,calc(100% - 40px)); margin:auto; }
.eyebrow { margin:0 0 14px; color:var(--gold); font-size:12px; font-weight:850; letter-spacing:.16em; }
.button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; padding:12px 19px; border:1px solid transparent; border-radius:12px; font-size:14px; font-weight:750; }
.button.primary { background:var(--navy); color:#fff; }
.button.quiet { background:#fff; border-color:var(--line); color:var(--navy); }

.hero { min-height:610px; display:grid; grid-template-columns:1.22fr .78fr; gap:70px; align-items:center; padding:76px 0 84px; }
.hero h1 { font-size:clamp(48px,7vw,88px); line-height:1.02; letter-spacing:-.055em; margin:0; color:var(--navy); font-weight:820; }
.hero h1 em { font-style:normal; color:var(--gold); }
.hero-lead { max-width:700px; margin:28px 0; color:var(--muted); font-size:18px; line-height:1.9; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.hero-panel { background:var(--navy); color:#fff; border-radius:30px; padding:35px; box-shadow:0 30px 70px rgba(8,47,87,.2); position:relative; overflow:hidden; }
.hero-panel:after { content:""; position:absolute; width:210px; height:210px; border:48px solid rgba(189,149,96,.13); border-radius:50%; right:-92px; top:-90px; }
.panel-label { color:#d6b989; font-size:12px; font-weight:800; letter-spacing:.13em; margin:0; }
.hero-panel h2 { font-size:28px; line-height:1.35; margin:14px 0 30px; max-width:330px; }
.hero-panel dl { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:0; }
.hero-panel dl div { border-top:1px solid rgba(255,255,255,.22); padding-top:16px; }
.hero-panel dt { font-size:29px; font-weight:800; }
.hero-panel dd { margin:2px 0; color:#c9d6e0; font-size:12px; }
.panel-note { margin:27px 0 0; padding-top:20px; border-top:1px solid rgba(255,255,255,.15); font-size:13px; color:#c9d6e0; }

.search-section { background:#fff; border:1px solid var(--line); border-radius:26px; padding:32px; box-shadow:var(--shadow); display:grid; grid-template-columns:.8fr 1.2fr; gap:22px 48px; align-items:end; }
.search-section h2,.section-heading h2,.map-section h2,.about-section h2 { margin:0; color:var(--navy); font-size:clamp(27px,4vw,42px); line-height:1.2; letter-spacing:-.025em; }
.search-box label,.filters label { display:block; color:#607286; font-size:12px; font-weight:720; }
.search-box input { width:100%; margin-top:8px; border:1px solid #ccd8e2; border-radius:13px; padding:14px 15px; font:inherit; color:var(--ink); outline:none; }
.search-box input:focus,.filters select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(11,74,128,.11); }
.filters { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.filters select { width:100%; margin-top:7px; padding:11px; border:1px solid #d4dee6; border-radius:11px; background:#f9fbfc; color:var(--ink); }
.paper-section,.map-section,.about-section { padding:90px 0 10px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:25px; margin-bottom:28px; }
.section-link { color:var(--blue); text-decoration:none; font-size:13px; font-weight:780; }
.result-count { margin:0; color:var(--muted); font-size:14px; }
.paper-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.paper-card { min-height:390px; background:#fff; border:1px solid var(--line); border-radius:20px; padding:23px; display:flex; flex-direction:column; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.paper-card:hover { transform:translateY(-4px); border-color:#b8c9d7; box-shadow:var(--shadow); }
.paper-card.featured { border-top:3px solid var(--gold); }
.card-top { display:flex; justify-content:space-between; gap:10px; }
.route { color:var(--blue); font-size:11px; font-weight:800; letter-spacing:.04em; }
.year { color:var(--gold); font-weight:850; }
.paper-card h3 { font-size:18px; line-height:1.42; margin:18px 0 10px; color:var(--navy); }
.paper-card h3 a { text-decoration:none; }
.title-en { font-size:12px; line-height:1.55; color:#758493; margin:0 0 14px; }
.meta { font-size:12px; color:#52677a; margin:0 0 14px; }
.summary { font-size:13px; color:#536779; margin:0; }
.tag-list { display:flex; flex-wrap:wrap; gap:6px; margin:18px 0; }
.tag { padding:4px 8px; border-radius:999px; background:#eef4f8; color:#315a78; font-size:10px; font-weight:700; }
.card-foot { margin-top:auto; display:flex; justify-content:space-between; align-items:center; gap:10px; padding-top:16px; border-top:1px solid #edf1f4; }
.read-link,.source-link { font-size:12px; font-weight:800; text-decoration:none; color:var(--blue); }
.source-link { color:#7a6342; text-align:right; }
.load-more { display:block; margin:28px auto 0; border:1px solid var(--line); border-radius:12px; padding:11px 22px; background:#fff; color:var(--navy); font-weight:760; }
.empty-state { background:#fff; border:1px dashed #bdcad5; border-radius:18px; padding:42px; text-align:center; color:var(--muted); }
.empty-state b,.empty-state span { display:block; }
.route-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }
.route-grid article { background:#fff; border:1px solid var(--line); border-radius:18px; padding:24px; }
.route-grid span { color:var(--gold); font-weight:850; }
.route-grid h3 { color:var(--navy); margin:16px 0 8px; }
.route-grid p { font-size:13px; color:var(--muted); margin:0; }
.about-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; padding-bottom:100px; }
.about-section>div>p { margin:0 0 22px; font-size:17px; line-height:1.9; color:var(--muted); }
.rss-callout { display:flex; flex-direction:column; gap:3px; text-decoration:none; border:1px solid var(--line); border-radius:15px; padding:15px 17px; background:#fff; }
.rss-callout b { color:var(--navy); }
.rss-callout span { color:var(--muted); font-size:12px; }
footer { display:flex; justify-content:center; gap:24px; padding:28px; border-top:1px solid var(--line); background:#fff; color:#6b7c8d; font-size:12px; }
footer a { text-decoration:none; }
.noscript { position:fixed; bottom:20px; left:20px; right:20px; padding:14px; background:#fff4dd; border:1px solid #e4c586; border-radius:10px; }

.detail-header .group-link { margin-left:auto; }
.paper-detail { width:min(960px,calc(100% - 40px)); margin:55px auto 100px; }
.paper-detail .back,.rss-page .back { color:var(--blue); text-decoration:none; font-weight:700; }
.detail-head { padding:45px 0; border-bottom:1px solid var(--line); }
.detail-head h1 { font-size:clamp(34px,6vw,62px); line-height:1.1; color:var(--navy); margin:15px 0; letter-spacing:-.035em; }
.detail-head .english { color:var(--muted); font-size:16px; }
.detail-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.detail-grid { display:grid; grid-template-columns:1fr 285px; gap:55px; padding-top:40px; }
.detail-grid h2 { color:var(--navy); font-size:22px; margin-top:36px; }
.detail-grid p,.detail-grid li { color:#40586b; }
.metric-list { display:grid; gap:10px; }
.metric-item { background:#f6f9fb; border-left:3px solid var(--gold); padding:13px; }
.metric-item b,.metric-item small { display:block; }
.metric-item small { color:var(--muted); }
.muted-copy { color:var(--muted); }
.detail-aside { background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px; height:max-content; position:sticky; top:105px; }
.detail-aside dt { font-size:11px; color:var(--muted); margin-top:14px; }
.detail-aside dd { margin:2px 0; color:var(--ink); font-size:13px; }
.detail-aside a { color:var(--blue); word-break:break-word; }
.contact-list { list-style:none; padding:0; margin:0; }
.contact-list li { border-top:1px solid var(--line); padding:10px 0; }
.contact-list b,.contact-list span { display:block; }
.contact-list span { color:var(--muted); font-size:11px; }

.guide-page { width:min(1080px,calc(100% - 40px)); margin:auto; padding-bottom:90px; }
.guide-hero { padding:85px 0 60px; max-width:900px; }
.guide-hero h1 { margin:0; color:var(--navy); font-size:clamp(42px,7vw,76px); line-height:1.08; letter-spacing:-.05em; }
.guide-hero>p:last-child { max-width:720px; color:var(--muted); font-size:17px; line-height:1.9; }
.reading-path { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:80px; }
.reading-path article { min-height:175px; padding:20px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.reading-path span { color:var(--gold); font-size:12px; font-weight:850; }
.reading-path b { display:block; color:var(--navy); margin:22px 0 7px; }
.reading-path p { color:var(--muted); font-size:12px; margin:0; }
.guide-library>.section-heading>p { color:var(--muted); }
.guide-paper { scroll-margin-top:100px; margin-bottom:12px; border:1px solid var(--line); border-radius:17px; background:#fff; overflow:hidden; }
.guide-paper[open] { box-shadow:var(--shadow); border-color:#bdceda; }
.guide-paper summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 22px; }
.guide-paper summary::-webkit-details-marker { display:none; }
.guide-paper summary span small,.guide-paper summary span b { display:block; }
.guide-paper summary small { color:var(--gold); font-size:10px; font-weight:800; }
.guide-paper summary b { color:var(--navy); margin-top:5px; }
.guide-paper summary i { color:var(--blue); font-style:normal; font-size:11px; font-weight:760; white-space:nowrap; }
.guide-body { border-top:1px solid var(--line); padding:22px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; background:#fbfcfd; }
.guide-body section { position:relative; padding:20px; border:1px solid #e3eaf0; border-radius:14px; background:#fff; }
.guide-number { color:var(--gold); font-size:10px; font-weight:850; }
.guide-body h3 { margin:8px 0; color:var(--navy); }
.guide-body p,.guide-body li { color:var(--muted); font-size:13px; }
.guide-body ul { margin:0; padding-left:18px; }
.evidence-list { list-style:none; padding:0!important; }
.evidence-list li { padding:8px 0; border-top:1px solid var(--line); }
.evidence-list b,.evidence-list span { display:block; }
.evidence-list span { font-size:11px; }
.related-links { display:flex; flex-direction:column; gap:7px; }
.related-links a { color:var(--blue); font-size:12px; text-decoration:none; }
.guide-body>.button { width:max-content; }

.rss-page { width:min(760px,calc(100% - 40px)); margin:90px auto; }
.rss-page h1 { margin:0; color:var(--navy); font-size:clamp(40px,7vw,70px); line-height:1.08; letter-spacing:-.045em; }
.rss-lead { color:var(--muted); font-size:18px; line-height:1.9; }
.rss-card { margin:35px 0; padding:22px; border-radius:18px; background:var(--navy); color:#fff; display:grid; grid-template-columns:1fr auto; gap:10px; }
.rss-card label { grid-column:1/-1; color:#d4e0e9; font-size:11px; font-weight:760; }
.rss-card input { min-width:0; padding:11px; border:0; border-radius:10px; background:#fff; color:var(--ink); }
.rss-card .button { background:var(--gold); color:#1d3142; }
.rss-page ol { list-style:none; counter-reset:rss; padding:0; margin:40px 0; }
.rss-page li { counter-increment:rss; display:grid; grid-template-columns:40px 1fr; gap:2px 12px; padding:16px 0; border-top:1px solid var(--line); }
.rss-page li:before { content:"0" counter(rss); grid-row:1/3; color:var(--gold); font-weight:850; }
.rss-page li b,.rss-page li span { display:block; }
.rss-page li span { color:var(--muted); font-size:13px; }

.construction-body { min-height:100vh; display:grid; place-items:center; background:radial-gradient(circle at 80% 20%,rgba(189,149,96,.18),transparent 28%),linear-gradient(135deg,#f7fafb,#eaf1f5); }
.construction-page { width:min(760px,calc(100% - 36px)); padding:60px; border:1px solid rgba(8,47,87,.12); border-radius:30px; background:rgba(255,255,255,.92); box-shadow:0 30px 80px rgba(8,47,87,.13); }
.construction-page .brand-mark { margin-bottom:40px; }
.construction-page h1 { margin:0; color:var(--navy); font-size:clamp(48px,8vw,82px); line-height:1.04; letter-spacing:-.055em; }
.construction-page h1 em { color:var(--gold); font-style:normal; }
.construction-page>p:not(.eyebrow) { max-width:580px; margin:28px 0; color:var(--muted); font-size:17px; line-height:1.9; }
.construction-page>div { display:flex; gap:10px; flex-wrap:wrap; }
.construction-page small { display:block; margin-top:40px; padding-top:20px; border-top:1px solid var(--line); color:#81909d; }

@media(max-width:900px) {
  .site-header nav { display:none; }
  .hero { grid-template-columns:1fr; min-height:0; gap:42px; }
  .search-section,.about-section { grid-template-columns:1fr; }
  .paper-grid { grid-template-columns:repeat(2,1fr); }
  .route-grid { grid-template-columns:repeat(2,1fr); }
  .detail-grid { grid-template-columns:1fr; }
  .detail-aside { position:static; }
  .reading-path { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:620px) {
  main:not(.paper-detail):not(.guide-page):not(.rss-page):not(.construction-page) { width:min(100% - 26px,1180px); }
  .site-header { padding:10px 14px; min-height:68px; }
  .group-link { margin-left:auto; }
  .hero { padding:55px 0; }
  .hero h1 { font-size:45px; }
  .hero-panel { padding:25px; border-radius:22px; }
  .search-section { padding:22px; }
  .filters,.paper-grid,.route-grid,.guide-body,.reading-path { grid-template-columns:1fr; }
  .section-heading { align-items:start; flex-direction:column; }
  .paper-section,.map-section,.about-section { padding-top:65px; }
  .about-section { gap:24px; }
  .detail-grid { gap:25px; }
  .paper-detail,.guide-page,.rss-page { width:min(100% - 26px,960px); }
  .guide-hero { padding-top:55px; }
  .rss-card { grid-template-columns:1fr; }
  .rss-card label { grid-column:auto; }
  .construction-page { padding:36px 24px; }
}
