.app-root { min-height: 100vh; }
.site-shell {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  padding-top: var(--safe-top);
  border-bottom: 1px solid rgba(74,72,64,.16);
  background: color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter: blur(12px);
}
.site-header__inner,
.site-main,
.site-footer__inner {
  width: min(calc(100% - 32px), var(--content));
  margin-inline: auto;
}
.site-header__inner {
  min-height: 62px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.site-brand {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  text-decoration: none;
  min-width: 0;
}
.site-brand__name { font-weight: 700; letter-spacing: .08em; }
.site-brand__sub { color: var(--ink-soft); font-size: .78rem; white-space: nowrap; }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.site-main { padding-block: 28px 56px; }
.site-footer {
  border-top: 1px solid rgba(74,72,64,.15);
  color: var(--ink-soft);
  font-size: .78rem;
  padding: 16px 0 calc(16px + var(--safe-bottom));
}
.site-footer__inner { display:flex; gap: 18px; justify-content: space-between; flex-wrap: wrap; }
.page-stack { display: grid; gap: 22px; }
.content-narrow { width: min(100%, 760px); margin-inline: auto; }
.content-medium { width: min(100%, 920px); margin-inline: auto; }

@media (max-width: 720px) {
  .site-header__inner, .site-main, .site-footer__inner { width: min(calc(100% - 24px), var(--content)); }
  .site-header__inner { min-height: 56px; gap: 10px; }
  .site-brand__sub { display: none; }
  .site-main { padding-block: 18px 42px; }
  .site-footer__inner { display: grid; gap: 4px; }
}

.immersive-shell { min-height: 100vh; }
.game-tools { position: fixed; z-index: 90; right: max(10px,var(--safe-right)); bottom: max(10px,var(--safe-bottom)); display:flex; gap:4px; padding:4px; border:1px solid rgba(45,45,41,.12); border-radius:999px; background:rgba(246,244,237,.82); backdrop-filter:blur(10px); box-shadow:0 5px 18px rgba(0,0,0,.08); }
.tool-button { width:36px; height:36px; }

.chat-page { min-height:100vh; width:100%; background:#d7ddd6; padding:0 0 70px; }
.chat-shell { width:min(100%,760px); min-height:100vh; margin:auto; background:#edf0ec; border-inline:1px solid rgba(30,38,31,.08); }
.chat-topbar { position:sticky; top:0; z-index:20; min-height:68px; display:flex; align-items:center; gap:12px; padding:10px 16px; background:rgba(248,249,246,.94); border-bottom:1px solid #d8ddd7; backdrop-filter:blur(12px); }
.chat-avatar { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:#55614f; color:white; font-weight:700; }
.chat-person { display:grid; gap:2px; }
.chat-person span { font-size:.74rem; color:#788078; }
.chat-profile-link { margin-left:auto; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#59635a; }
.chat-profile-link svg { width:20px; }
.chat-list { padding:18px 14px 26px; display:grid; gap:8px; }
.msg-row { display:flex; max-width:100%; }
.msg-row--other { justify-content:flex-start; padding-right:18%; }
.msg-row--me { justify-content:flex-end; padding-left:18%; }
.msg-bubble { max-width:min(76vw,480px); padding:10px 12px 7px; border-radius:5px 16px 16px 16px; background:white; box-shadow:0 1px 1px rgba(0,0,0,.05); }
.msg-row--me .msg-bubble { background:#a9d88f; border-radius:16px 5px 16px 16px; }
.msg-bubble p { margin:0; line-height:1.62; }
.msg-time { display:block; margin-top:4px; text-align:right; font: .68rem/1.2 ui-sans-serif,system-ui; color:#8c948c; }
.chat-composer { position:sticky; bottom:0; z-index:15; padding:10px 12px calc(12px + var(--safe-bottom)); background:rgba(247,248,245,.96); border-top:1px solid #d5dad5; display:grid; gap:7px; }
.chat-composer__label { margin:0 2px 3px; font-size:.72rem; color:#7c847d; }
.reply-option { width:100%; min-height:44px; border:1px solid #d6dbd5; border-radius:10px; background:#fff; text-align:left; padding:9px 12px; cursor:pointer; }
.reply-option:hover { background:#f6f8f4; }
.chat-next { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.chat-next p { margin:0; color:#6f776f; font-size:.84rem; }

.trail-site { min-height:100vh; background:#fafafa; font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif; color:#252725; }
.trail-header { border-bottom:1px solid #e5e6e4; background:#fff; }
.trail-header__inner { width:min(calc(100% - 32px),1060px); margin:auto; min-height:58px; display:flex; align-items:center; gap:28px; }
.trail-logo { font-weight:800; font-size:1.25rem; text-decoration:none; letter-spacing:-.04em; }
.trail-nav { display:flex; gap:20px; color:#777d77; font-size:.88rem; }
.trail-nav .is-active { color:#202620; font-weight:700; }
.trail-login { margin-left:auto; color:#929792; font-size:.78rem; }
.trail-wrap { width:min(calc(100% - 32px),1060px); margin:34px auto 80px; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:46px; }
.trail-maincol { min-width:0; }
.profile-hero { display:flex; gap:20px; align-items:flex-start; padding-bottom:28px; border-bottom:1px solid #e6e7e5; }
.profile-avatar { width:76px; height:76px; border-radius:20px; display:grid; place-items:center; background:#465349; color:#fff; font-size:1.6rem; flex:0 0 auto; }
.profile-meta h1 { margin:0; font-size:1.48rem; }
.profile-handle { margin:3px 0 14px; color:#8a8f8a; font-size:.86rem; }
.profile-meta>p:last-of-type { max-width:620px; line-height:1.7; color:#4c514c; }
.profile-stats { display:flex; flex-wrap:wrap; gap:16px; color:#787d78; font-size:.78rem; }
.feed { margin-top:30px; }
.feed>h2 { font-size:.96rem; margin:0 0 14px; }
.feed-post { border-top:1px solid #ececea; padding-top:20px; }
.feed-post__meta { color:#888d88; font-size:.76rem; }
.feed-post h3 { margin:7px 0 10px; font-size:1.16rem; }
.feed-post p { line-height:1.76; color:#4b504b; }
.feed-actions { margin-top:12px; }
.trail-aside { padding-top:8px; }
.trail-aside h2 { margin:3px 0 8px; font-size:1.15rem; }
.trail-aside p { line-height:1.7; color:#666b66; }
.eyebrow { margin:0; font-size:.72rem; letter-spacing:.12em; color:#868c86; text-transform:uppercase; }
.text-link { display:inline-flex; flex-direction:column; gap:2px; color:#365b40; text-decoration:none; border-bottom:1px solid rgba(54,91,64,.25); padding-bottom:2px; }
.text-link small { color:#949994; font-size:.68rem; }
.draft-entry { margin-top:28px; padding:16px 0; border-top:1px solid #ececea; border-bottom:1px solid #ececea; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.draft-entry p { margin:4px 0 0; color:#929792; font-size:.76rem; }
.password-clue { padding:9px 11px; background:#f1f2ef; font-family:ui-monospace,monospace; }
.form-error { min-height:1.2em; margin:2px 0 0; color:var(--danger); font-size:.8rem; }
.track-page { width:min(calc(100% - 32px),1060px); margin:42px auto 80px; }
.track-head h1 { margin:.28rem 0 .6rem; font-size:clamp(1.65rem,3vw,2.25rem); letter-spacing:-.035em; }
.track-lead { max-width:720px; line-height:1.75; color:#5c615c; }
.track-stats { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid #e4e6e3; margin:28px 0 34px; }
.track-stats>div { padding:18px 10px 16px 0; display:grid; gap:3px; }
.track-stats strong { font-size:1.35rem; font-weight:650; }
.track-stats span { color:#8c918c; font-size:.72rem; }
.track-body { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:54px; }
.track-note h2,.track-side h2 { font-size:1rem; }
.track-note p { line-height:1.82; color:#515651; }
.track-note blockquote { margin:22px 0; border-left:3px solid #536354; padding:10px 16px; background:#f3f5f2; color:#3f463f; }
.sync-note { font-size:.8rem; color:#848984 !important; }
.route-summary { border-top:2px solid #343934; padding-top:12px; }
.route-summary ol { margin:12px 0 22px; padding-left:1.2em; color:#666b66; line-height:2; font-size:.86rem; }
.route-summary .is-last { font-weight:700; color:#303530; }
.draft-page { width:min(calc(100% - 32px),740px); margin:52px auto 90px; background:#fff; border:1px solid #e7e8e5; padding:clamp(24px,5vw,56px); box-shadow:0 10px 40px rgba(0,0,0,.04); }
.draft-label { color:#929792; font-size:.76rem; }
.draft-page h1 { margin:12px 0 28px; font-size:1.55rem; }
.draft-page>p:not(.draft-label) { font-size:1.02rem; line-height:1.95; }
.draft-foot { margin-top:42px; padding-top:18px; border-top:1px solid #ececea; display:flex; justify-content:space-between; color:#8a8f8a; font-size:.78rem; }

.village-site,.route-guide-site { min-height:100vh; background:#f5f2e8; color:#2d302a; font-family:"Noto Serif SC","Songti SC",serif; }
.village-header { background:#fffdf7; border-bottom:1px solid #c8c1ae; }
.village-utility { border-bottom:1px solid #e0dacb; background:#eee9dc; color:#74756d; font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif; }
.village-utility__inner { width:min(calc(100% - 32px),1160px); min-height:28px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:.66rem; }
.village-header__inner { width:min(calc(100% - 32px),1160px); min-height:82px; margin:auto; display:flex; align-items:center; gap:34px; }
.village-brand { display:grid; text-decoration:none; color:#233226; line-height:1.05; }
.village-brand strong { font-family:"STKaiti","KaiTi","Noto Serif SC",serif; font-size:1.72rem; letter-spacing:.12em; font-weight:650; }
.village-brand span { margin-top:7px; font: .66rem/1.2 Inter,"PingFang SC",sans-serif; color:#7b7b70; letter-spacing:.08em; }
.village-nav { margin-left:auto; display:flex; gap:24px; align-items:center; font: .82rem/1 Inter,"PingFang SC","Microsoft YaHei",sans-serif; }
.village-nav a,.village-nav span { color:#5f655e; text-decoration:none; padding:31px 0 27px; white-space:nowrap; }
.village-nav a:hover { color:#263329; }
.village-nav .is-active { color:#213128; border-bottom:3px solid #526952; font-weight:700; }

/* 青垭村门户：首页不再把内容拆成三张卡，而是按地方旅游站的公告、主推线路和便民目录组织。 */
.village-home-hero { width:min(100%,1380px); margin:0 auto; position:relative; background:#263329; }
.photo--village-home { width:100%; height:clamp(330px,46vw,540px); display:block; }
.photo--village-home img { object-position:center 52%; filter:saturate(.82) contrast(.96) brightness(.84); }
.photo--village-home .photo__caption { display:none; }
.village-home-hero__copy { position:absolute; inset:auto auto 38px max(28px,calc((100% - 1160px)/2)); width:min(610px,calc(100% - 56px)); color:#fffdf3; text-shadow:0 1px 4px rgba(0,0,0,.5); }
.village-home-hero__copy::before { content:""; position:absolute; z-index:-1; inset:-30px -44px -28px -28px; background:linear-gradient(90deg,rgba(20,30,23,.72),rgba(20,30,23,.12)); }
.village-home-hero__season { font: .72rem/1 Inter,"PingFang SC",sans-serif; letter-spacing:.12em; }
.village-home-hero__copy h1 { margin:10px 0 12px; font-family:"STKaiti","KaiTi","Noto Serif SC",serif; font-size:clamp(3rem,7vw,5.7rem); font-weight:600; letter-spacing:.12em; line-height:1; }
.village-home-hero__copy p { max-width:560px; margin:0; font-size:1.02rem; line-height:1.9; }
.village-home-body { width:min(calc(100% - 32px),1160px); margin:40px auto 78px; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:54px; align-items:start; }
.village-home-main { min-width:0; }
.village-section-title { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding-bottom:10px; border-bottom:2px solid #34483a; }
.village-section-title h2 { margin:0; font-size:1.18rem; letter-spacing:.05em; }
.village-section-title span { color:#8a8a80; font: .68rem/1.4 Inter,"PingFang SC",sans-serif; }
.village-news-row { padding:16px 0 17px; border-bottom:1px solid #d6d0c1; }
.village-news-row__head { display:flex; align-items:baseline; gap:18px; }
.village-news-row__head time { flex:0 0 86px; color:#8e8c82; font: .7rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; }
.village-news-row__head strong { font-size:.98rem; font-weight:650; }
.village-news-row p { margin:7px 0 4px 104px; color:#66685f; font-size:.84rem; line-height:1.75; }
.village-news-row .text-link { margin-left:104px; margin-top:3px; font-family:Inter,"PingFang SC",sans-serif; font-size:.72rem; }
.village-route-feature { margin-top:36px; }
.village-route-feature__body { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr); gap:28px; align-items:center; padding-top:18px; }
.photo--village-route { width:100%; aspect-ratio:16/9.2; }
.village-route-feature__copy h3 { margin:0 0 8px; font-size:1.35rem; font-weight:650; }
.village-route-meta { color:#6c756b!important; font: .75rem/1.7 Inter,"PingFang SC",sans-serif!important; }
.village-route-feature__copy p { color:#565c54; line-height:1.82; }
.village-route-feature__copy .text-link { font-family:Inter,"PingFang SC",sans-serif; font-size:.76rem; }
.village-home-aside { border-left:1px solid #c8c1af; padding-left:30px; }
.village-home-aside>h2 { margin:0 0 5px; padding-bottom:12px; border-bottom:2px solid #34483a; font-size:1.12rem; }
.village-service-row { padding:17px 0; border-bottom:1px solid #d6d0c1; }
.village-service-row__label { display:block; margin-bottom:5px; color:#8a887d; font: .66rem/1 Inter,"PingFang SC",sans-serif; letter-spacing:.08em; }
.village-service-row strong { display:block; font-size:.95rem; }
.village-service-row p { margin:6px 0 4px; color:#66685f; font-size:.8rem; line-height:1.65; }
.village-service-row small { display:block; color:#aaa79d; font: .68rem/1.6 Inter,"PingFang SC",sans-serif; }
.village-service-row .text-link { font-family:Inter,"PingFang SC",sans-serif; font-size:.7rem; }
.village-contact { margin-top:24px; padding-top:16px; border-top:3px double #b8b19f; }
.village-contact strong { font-size:.88rem; }
.village-contact p,.village-contact small { color:#6e7068; font-size:.75rem; line-height:1.7; }
.village-contact p { margin:7px 0 3px; }
.village-footer { min-height:70px; border-top:1px solid #c8c1ae; background:#ece7da; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px max(16px,calc((100vw - 1160px)/2)); color:#777970; font: .68rem/1.6 Inter,"PingFang SC",sans-serif; }

/* 九弯线路：像户外线路资料页，而不是一组指标卡。 */
.route-guide { width:min(calc(100% - 32px),1060px); margin:30px auto 84px; }
.route-guide__crumb { color:#8b8a80; font: .69rem/1.5 Inter,"PingFang SC",sans-serif; }
.route-guide__title { max-width:800px; padding:18px 0 22px; border-bottom:1px solid #c9c3b4; }
.route-guide__title>span { color:#69746a; font: .7rem/1.4 Inter,"PingFang SC",sans-serif; letter-spacing:.08em; }
.route-guide__title h1 { margin:9px 0 11px; font-size:clamp(2.3rem,5vw,4.2rem); font-weight:600; line-height:1.08; }
.route-guide__title p { color:#565c54; line-height:1.9; font-size:.96rem; }
.route-guide__facts { display:flex; gap:0; border-bottom:1px solid #c9c3b4; }
.route-guide__facts>div { min-width:130px; padding:16px 28px 16px 0; margin-right:28px; border-right:1px solid #d5cfbf; display:grid; gap:4px; }
.route-guide__facts>div:last-child { border-right:0; }
.route-guide__facts span { color:#8b8a80; font: .68rem/1 Inter,"PingFang SC",sans-serif; }
.route-guide__facts strong { font-size:.94rem; font-weight:650; }
.route-guide__body { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:50px; align-items:start; margin-top:30px; }
.photo--route-guide { width:100%; aspect-ratio:16/8.8; }
.route-guide__section { padding:28px 0 8px; }
.route-guide__section h2,.route-levels h2,.route-guide__aside h2 { margin:0 0 12px; font-size:1.1rem; }
.route-guide__section p { color:#50564e; line-height:1.9; }
.route-levels { margin-top:24px; border-top:2px solid #415345; padding-top:20px; }
.route-levels__intro { color:#74766d; font-size:.84rem; line-height:1.75; }
.route-level-row { display:grid; grid-template-columns:92px 1fr; align-items:baseline; padding:13px 0; border-top:1px dotted #bfb9aa; }
.route-level-row strong { font-weight:650; }
.route-level-row p { margin:0; line-height:1.7; }
.route-levels__note { margin-top:16px; color:#74766d; font-size:.78rem; line-height:1.75; }
.route-guide__aside { border-left:1px solid #c8c1af; padding-left:24px; }
.route-guide__aside section { padding:0 0 23px; margin-bottom:23px; border-bottom:1px solid #d3cdbd; }
.route-guide__aside p { color:#666a62; font-size:.82rem; line-height:1.75; }
.route-guide__dl { display:grid; grid-template-columns:54px 1fr; gap:8px 10px; margin:0; font: .78rem/1.6 Inter,"PingFang SC",sans-serif; }
.route-guide__dl dt { color:#8d8b81; }
.route-guide__dl dd { margin:0; color:#4f574f; }
.route-guide__warning { border-top:3px solid #765b3f; padding-top:15px!important; }
.route-guide__aside .text-link { font-family:Inter,"PingFang SC",sans-serif; font-size:.73rem; }

.photo { position:relative; padding:0; border:0; background:#d8d8d2; overflow:hidden; cursor:zoom-in; text-align:left; }
.photo img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .22s ease; }
.photo:hover img { transform:scale(1.012); }
.photo__caption { position:absolute; left:0; right:0; bottom:0; padding:18px 12px 8px; background:linear-gradient(transparent,rgba(0,0,0,.62)); color:#fff; font: .72rem/1.3 ui-sans-serif,system-ui; }
.photo--chat { width:min(62vw,360px); aspect-ratio:4/3; border-radius:6px 16px 16px 16px; }
.photo--wide { aspect-ratio:16/10; }
.photo--portrait { width:min(48vw,270px); aspect-ratio:3/4; }
.photo--feed { width:100%; aspect-ratio:16/8.8; margin-top:14px; border-radius:3px; }
.photo--track { width:100%; aspect-ratio:4/5; margin:18px 0; }
.photo--hero { min-height:440px; cursor:zoom-in; }
.photo--hero img { object-position:center 46%; }
.photo--route { width:100%; aspect-ratio:16/7.8; margin-top:26px; }

@media (max-width: 820px) {
  .trail-wrap,.track-body { grid-template-columns:1fr; gap:28px; }
  .trail-aside { border-top:1px solid #e5e6e4; padding-top:22px; }
  .track-stats { grid-template-columns:repeat(2,1fr); }
  .photo--hero { min-height:300px; aspect-ratio:16/9; }
  .village-home-body,.route-guide__body { grid-template-columns:1fr; gap:34px; }
  .village-home-aside,.route-guide__aside { border-left:0; border-top:1px solid #c8c1af; padding:24px 0 0; }
  .village-home-aside { display:grid; grid-template-columns:1fr 1fr; column-gap:28px; }
  .village-home-aside>h2,.village-contact { grid-column:1/-1; }
}
@media (max-width: 600px) {
  .trail-header__inner,.village-header__inner,.village-utility__inner { width:calc(100% - 24px); }
  .trail-nav { display:none; }
  .village-utility__inner span:last-child { display:none; }
  .village-header__inner { min-height:70px; display:grid; gap:0; padding:9px 0 0; }
  .village-brand { padding-bottom:8px; }
  .village-nav { width:100%; margin:0; gap:18px; overflow-x:auto; border-top:1px solid #e2ddcf; }
  .village-nav a,.village-nav span { padding:11px 0 10px; font-size:.75rem; }
  .profile-hero { gap:14px; }
  .profile-avatar { width:58px; height:58px; border-radius:15px; }
  .profile-stats { gap:8px 12px; }
  .track-page,.trail-wrap,.route-guide { width:calc(100% - 24px); }
  .track-stats { margin-top:20px; }
  .chat-next { align-items:flex-start; flex-direction:column; }
  .photo--chat { width:min(76vw,330px); }
  .village-home-hero__copy { left:22px; bottom:24px; width:calc(100% - 44px); }
  .village-home-hero__copy::before { inset:-22px -22px -20px -22px; }
  .village-home-body { width:calc(100% - 24px); margin-top:28px; }
  .village-route-feature__body { grid-template-columns:1fr; gap:18px; }
  .village-news-row__head { gap:10px; }
  .village-news-row__head time { flex-basis:78px; }
  .village-news-row p,.village-news-row .text-link { margin-left:0; }
  .village-home-aside { grid-template-columns:1fr; }
  .village-home-aside>h2,.village-contact { grid-column:auto; }
  .route-guide__facts { display:grid; grid-template-columns:1fr 1fr; }
  .route-guide__facts>div { min-width:0; margin:0; padding:13px 14px 13px 0; border-right:0; border-bottom:1px solid #d5cfbf; }
}

/* Stage 1 photo treatment: preserve a phone/documentary feel without fake horror effects. */
.photo--watchman img { object-position: 52% 32%; filter: saturate(.72) contrast(.96) brightness(.92); }
.photo--failed { min-height: 150px; display:grid; place-items:center; cursor:default; background:#d7d6cf; border:1px solid rgba(45,45,41,.12); }
.photo--failed .photo__caption { position:static; width:100%; margin-top:auto; background:none; color:#62655f; padding:10px 12px; }
.photo__error { padding:28px 20px; color:#747871; font-size:.78rem; text-align:center; }
.chat-next strong { font-size:.82rem; font-weight:600; color:#4e554f; }
.chat-next div > p { margin-top:3px; }

.stage-message-choice{display:grid;gap:7px;width:min(82%,480px);margin:8px 0 4px}.notice p{margin:.5rem 0 0}

/* Stage 2 page identities: restaurant, public service, heritage article, official notice. */
.restaurant-site { min-height:100vh; background:#f4ecdd; color:#33291f; font-family:"Noto Serif SC","Songti SC",serif; }
.restaurant-header { background:#3f2d20; color:#f7eddd; border-bottom:4px solid #8b5f35; }
.restaurant-header__inner { width:min(calc(100% - 32px),1080px); min-height:82px; margin:auto; display:flex; align-items:center; gap:24px; }
.restaurant-brand { display:grid; color:#fff5e5; text-decoration:none; line-height:1.05; }
.restaurant-brand strong { font-family:"STKaiti","KaiTi","Noto Serif SC",serif; font-size:2rem; letter-spacing:.1em; }
.restaurant-brand span { margin-top:7px; color:#d7c1a8; font: .68rem/1.2 Inter,"PingFang SC",sans-serif; letter-spacing:.08em; }
.restaurant-contact { margin-left:auto; text-align:right; display:grid; gap:3px; font-family:Inter,"PingFang SC",sans-serif; }
.restaurant-contact span { font-size:.78rem; }.restaurant-contact small { color:#c9b79f; font-size:.66rem; }
.restaurant-nav { min-height:38px; padding:0 max(16px,calc((100vw - 1080px)/2)); display:flex; align-items:center; gap:26px; background:#efe3d2; border-top:1px solid #6f4a2d; font: .75rem/1 Inter,"PingFang SC",sans-serif; overflow-x:auto; white-space:nowrap; }
.restaurant-nav a,.restaurant-nav span,.restaurant-nav-button { padding:12px 0 10px; color:#6b5541; text-decoration:none; }.restaurant-nav-button{border:0;background:none;font:inherit;cursor:pointer}.restaurant-nav .is-active { color:#2f241b; font-weight:700; border-bottom:2px solid #7d4f2b; }
.restaurant-hero { width:min(calc(100% - 32px),1080px); margin:34px auto 0; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); border-bottom:1px solid #bba98f; }
.photo--restaurant-hero { width:100%; height:390px; }.photo--restaurant-hero img { object-position:center 45%; filter:saturate(.9) contrast(.98); }
.restaurant-hero__copy { padding:34px 0 34px 38px; align-self:center; }
.restaurant-hero__copy>span { color:#856c54; font: .7rem/1.4 Inter,"PingFang SC",sans-serif; }.restaurant-hero__copy h1 { margin:10px 0 14px; font-family:"STKaiti","KaiTi","Noto Serif SC",serif; font-size:clamp(2.6rem,5vw,4.5rem); font-weight:600; }.restaurant-hero__copy p { line-height:1.9; color:#5c4b3c; }.restaurant-open { margin-top:24px!important; border-top:1px solid #c5b49d; padding-top:12px; font-size:.8rem!important; font-family:Inter,"PingFang SC",sans-serif; }
.restaurant-body { width:min(calc(100% - 32px),1080px); margin:36px auto 72px; display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:48px; align-items:start; }
.restaurant-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding-bottom:10px; border-bottom:2px solid #5a3b25; }.restaurant-section-head h2 { margin:0; font-size:1.18rem; }.restaurant-section-head span { color:#8a7662; font: .68rem/1.4 Inter,"PingFang SC",sans-serif; }
.restaurant-menu-row { display:grid; grid-template-columns:72px 76px minmax(0,1fr) 74px; gap:14px; align-items:baseline; padding:16px 0; border-bottom:1px solid #c9b79e; }.restaurant-menu-row strong { font-size:1rem; }.restaurant-menu-row span { color:#7d6650; font: .75rem/1.4 Inter,"PingFang SC",sans-serif; }.restaurant-menu-row p { margin:0; color:#5d4e40; line-height:1.7; font-size:.86rem; }.restaurant-menu-row em { text-align:right; font-style:normal; font: .76rem/1.4 Inter,"PingFang SC",sans-serif; color:#7c4a2d; }
.restaurant-owner-note { margin:30px 0 38px; padding:20px 24px; border-block:1px solid #a99070; background:#eadcc7; }.restaurant-owner-note strong { font: .72rem/1.4 Inter,"PingFang SC",sans-serif; color:#82654b; }.restaurant-owner-note p { margin:9px 0 0; line-height:1.8; font-size:1rem; }.restaurant-owner-note small { display:block; margin-top:9px; color:#7f6a56; font-size:.75rem; line-height:1.6; }
.restaurant-comment { padding:18px 0; border-bottom:1px solid #c9b79e; }.restaurant-comment__meta { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }.restaurant-comment__meta strong { font-size:.88rem; }.restaurant-comment__meta time { color:#99856f; font: .68rem/1.4 ui-monospace,monospace; }.restaurant-comment>p { margin:8px 0; color:#514337; line-height:1.75; }.restaurant-comment blockquote { margin:9px 0 0; padding-left:16px; border-left:2px solid #9e754f; color:#6a5745; line-height:1.75; font-size:.84rem; }
.restaurant-aside { border-left:1px solid #bba98f; padding-left:25px; }.restaurant-aside section { padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid #c9b79e; }.restaurant-aside h2 { margin:0 0 12px; font-size:1rem; }.restaurant-aside dl { display:grid; grid-template-columns:44px 1fr; gap:8px 9px; margin:0; font: .75rem/1.55 Inter,"PingFang SC",sans-serif; }.restaurant-aside dt { color:#9a856e; }.restaurant-aside dd { margin:0; color:#5d4e40; }.restaurant-aside p { color:#655342; line-height:1.75; font-size:.82rem; }.restaurant-aside .text-link { font-family:Inter,"PingFang SC",sans-serif; font-size:.7rem; }
.restaurant-footer { min-height:76px; padding:18px max(16px,calc((100vw - 1080px)/2)); border-top:1px solid #aa957a; background:#3f2d20; color:#dfccb5; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:.76rem; }.restaurant-footer strong { color:#fff1df; letter-spacing:.08em; }

.public-service-site { min-height:100vh; background:#f6f7f4; color:#252b28; font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif; }
.public-service-header { background:#fff; border-bottom:1px solid #ced5d1; }.public-service-header__top { width:min(calc(100% - 32px),1060px); min-height:72px; margin:auto; display:flex; align-items:center; gap:24px; }.public-service-brand { display:grid; text-decoration:none; color:#27463b; }.public-service-brand strong { font-family:"Noto Serif SC","Songti SC",serif; font-size:1.38rem; letter-spacing:.04em; }.public-service-brand span { margin-top:3px; font-size:.62rem; letter-spacing:.12em; color:#81908a; }.public-service-tel { margin-left:auto; color:#78837e; font-size:.72rem; }.public-service-nav { min-height:40px; padding:0 max(16px,calc((100vw - 1060px)/2)); background:#2f5849; display:flex; align-items:center; gap:26px; color:#dbe5df; font-size:.75rem; }.public-service-nav a,.public-service-nav span { color:inherit; text-decoration:none; padding:12px 0 10px; }.public-service-nav .is-active { color:#fff; border-bottom:2px solid #fff; font-weight:700; }
.public-service-intro { width:min(calc(100% - 32px),1060px); margin:30px auto 0; }.public-service-breadcrumb { color:#89918d; font-size:.68rem; }.public-service-title { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:42px; align-items:end; padding:16px 0 23px; border-bottom:2px solid #345b4c; }.public-service-title span { color:#76847e; font-size:.7rem; }.public-service-title h1 { margin:7px 0 11px; font-family:"Noto Serif SC","Songti SC",serif; font-size:clamp(2rem,4.4vw,3.2rem); font-weight:650; }.public-service-title p { max-width:670px; margin:0; color:#59645f; line-height:1.8; }.public-service-hours { display:grid; grid-template-columns:45px 1fr; gap:7px 10px; margin:0; padding-left:22px; border-left:1px solid #d3dad6; font-size:.73rem; }.public-service-hours dt { color:#88908c; }.public-service-hours dd { margin:0; color:#3f4d46; }
.public-service-body { width:min(calc(100% - 32px),1060px); margin:24px auto 70px; display:grid; grid-template-columns:minmax(0,1fr) 245px; gap:48px; }.photo--service-main { width:100%; aspect-ratio:16/7.8; }.public-service-section { margin-top:28px; }.public-service-section h2,.service-faq h2,.public-service-aside h2 { margin:0 0 12px; font-size:1rem; }.public-service-table { width:100%; border-collapse:collapse; font-size:.82rem; }.public-service-table tr { border-top:1px solid #d4dad6; }.public-service-table tr:last-child { border-bottom:1px solid #d4dad6; }.public-service-table th { width:120px; padding:13px 16px 13px 0; text-align:left; font-weight:650; }.public-service-table td { padding:13px 0; color:#5c6761; line-height:1.65; }
.service-slogan { margin:30px 0; padding:20px 24px; background:#2f5849; color:#fff; display:flex; align-items:baseline; justify-content:space-between; gap:24px; }.service-slogan span { color:#c4d5ce; font-size:.68rem; }.service-slogan strong { font-family:"Noto Serif SC","Songti SC",serif; font-size:1.45rem; font-weight:600; letter-spacing:.05em; }
.service-faq { margin-top:30px; border-top:2px solid #345b4c; padding-top:17px; }.service-faq-row { padding:15px 0; border-bottom:1px solid #d4dad6; }.service-faq-row strong { display:block; font-size:.83rem; }.service-faq-row p { margin:7px 0 0; color:#5d6862; font-size:.82rem; line-height:1.7; }
.public-service-aside { border-left:1px solid #d2d9d5; padding-left:24px; }.public-service-aside ul { margin:0; padding-left:1.1em; color:#59645f; line-height:2; font-size:.8rem; }.public-service-note { margin:22px 0; padding-top:17px; border-top:1px solid #d2d9d5; color:#68736d; font-size:.76rem; line-height:1.75; }.public-service-aside .text-link { font-size:.72rem; }.public-service-footer { border-top:1px solid #d1d8d4; padding:18px max(16px,calc((100vw - 1060px)/2)); color:#818a85; font-size:.68rem; }

.heritage-site { min-height:100vh; background:#eee8da; color:#2e2c26; font-family:"Noto Serif SC","Songti SC",serif; }.heritage-header { background:#e5dece; border-bottom:1px solid #bcb29e; }.heritage-header__inner { width:min(calc(100% - 32px),980px); min-height:76px; margin:auto; display:flex; align-items:center; gap:24px; }.heritage-brand { display:grid; text-decoration:none; color:#3a362c; }.heritage-brand strong { font-family:"STKaiti","KaiTi","Noto Serif SC",serif; font-size:1.65rem; letter-spacing:.08em; }.heritage-brand span { color:#7d7668; font-size:.68rem; }.heritage-back { margin-left:auto; color:#6d6a61; font: .7rem/1.4 Inter,"PingFang SC",sans-serif; }.heritage-nav { min-height:38px; padding:0 max(16px,calc((100vw - 980px)/2)); border-top:1px solid #cec5b2; display:flex; align-items:center; gap:24px; color:#766f61; font: .72rem/1 Inter,"PingFang SC",sans-serif; }.heritage-nav span { padding:12px 0 10px; }.heritage-nav .is-active { color:#343129; border-bottom:2px solid #5f5849; font-weight:700; }
.heritage-article { width:min(calc(100% - 32px),900px); margin:34px auto 78px; }.heritage-crumb { color:#8d8575; font: .68rem/1.4 Inter,"PingFang SC",sans-serif; }.heritage-title { max-width:760px; padding:14px 0 28px; }.heritage-title span { color:#7d776a; font: .68rem/1.4 Inter,"PingFang SC",sans-serif; }.heritage-title h1 { margin:10px 0 14px; font-size:clamp(2.4rem,5vw,4.2rem); font-weight:600; }.heritage-title p { color:#575248; font-size:1rem; line-height:1.95; }.heritage-lead-photo { margin:4px 0 38px; }.photo--heritage-main { width:100%; aspect-ratio:16/9.4; }.photo--heritage-main img { object-position:center 34%; filter:saturate(.7) contrast(.95) brightness(.92); }.heritage-lead-photo>p { width:min(100%,650px); margin:12px 0 0 auto; color:#746d61; font-size:.76rem; line-height:1.7; text-align:right; }
.heritage-index { border-top:2px solid #5d584d; }.heritage-index h2 { margin:17px 0 7px; font-size:1.1rem; }.heritage-index-row { display:grid; grid-template-columns:90px 1fr; gap:20px; padding:15px 0; border-bottom:1px solid #c7bdab; }.heritage-index-row strong { font-size:.95rem; }.heritage-index-row p { margin:0; color:#565147; line-height:1.8; }.heritage-focus { margin:42px 0; border-block:1px solid #9e9583; display:grid; grid-template-columns:180px 1fr; }.heritage-focus__number { padding:30px 30px 30px 0; border-right:1px solid #9e9583; display:grid; align-content:center; }.heritage-focus__number span { color:#a19683; font: 3.8rem/1 ui-serif,Georgia,serif; }.heritage-focus__number strong { margin-top:8px; font-size:1rem; }.heritage-focus__copy { padding:30px 0 30px 36px; }.heritage-focus__copy h2 { margin:0 0 13px; font-size:1.25rem; }.heritage-focus__copy p { margin:0; color:#565147; line-height:1.9; }.heritage-index--tail { border-top:0; }.heritage-rules { margin-top:40px; padding-top:20px; border-top:3px double #8f8675; }.heritage-rules h2 { font-size:1.12rem; }.heritage-rules p { line-height:1.9; }.heritage-rules .text-link { margin-top:12px; font-family:Inter,"PingFang SC",sans-serif; font-size:.72rem; }.heritage-footer { min-height:68px; border-top:1px solid #bbb09d; display:flex; align-items:center; justify-content:center; color:#827b6d; font: .68rem/1.6 Inter,"PingFang SC",sans-serif; }

.village-notice-site { min-height:100vh; background:#f5f2e8; color:#2d302a; font-family:"Noto Serif SC","Songti SC",serif; }.village-notice-page { width:min(calc(100% - 32px),820px); margin:34px auto 84px; }.village-notice-breadcrumb { color:#8c8b81; font: .68rem/1.5 Inter,"PingFang SC",sans-serif; }.village-notice-title { padding:16px 0 21px; border-bottom:1px solid #c8c1af; }.village-notice-title span { color:#69736a; font: .7rem/1.4 Inter,"PingFang SC",sans-serif; }.village-notice-title h1 { margin:8px 0 12px; font-size:clamp(2rem,4.5vw,3.1rem); font-weight:600; line-height:1.25; }.village-notice-title p { margin:0; color:#89877d; font: .7rem/1.5 Inter,"PingFang SC",sans-serif; }.photo--notice-main { width:100%; aspect-ratio:16/8.5; margin:24px 0; }.village-notice-copy p { font-size:.98rem; line-height:2; margin:0 0 17px; }.village-notice-copy h2 { margin:30px 0 10px; padding-top:18px; border-top:1px solid #c8c1af; font-size:1.08rem; }.old-warning-strip { margin:28px 0; padding:16px 0; border-block:2px solid #6c5c45; display:grid; grid-template-columns:130px 1fr; gap:5px 18px; align-items:baseline; }.old-warning-strip span { color:#807768; font: .7rem/1.4 Inter,"PingFang SC",sans-serif; }.old-warning-strip strong { font: 700 .98rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.08em; }.old-warning-strip small { grid-column:2; color:#807d73; font: .68rem/1.5 Inter,"PingFang SC",sans-serif; }.village-notice-foot { margin-top:32px; padding-top:18px; border-top:1px solid #c8c1af; display:flex; justify-content:space-between; gap:18px; font-family:Inter,"PingFang SC",sans-serif; font-size:.72rem; }

@media(max-width:820px){
  .restaurant-hero,.restaurant-body,.public-service-body { grid-template-columns:1fr; }
  .restaurant-hero__copy { padding:28px 0 32px; }.photo--restaurant-hero{height:min(55vw,390px)}
  .restaurant-aside,.public-service-aside { border-left:0; border-top:1px solid #bba98f; padding:24px 0 0; }
  .public-service-title { grid-template-columns:1fr; gap:18px; }.public-service-hours { border-left:0; border-top:1px solid #d3dad6; padding:15px 0 0; }
}
@media(max-width:600px){
  .restaurant-header__inner,.public-service-header__top,.heritage-header__inner { width:calc(100% - 24px); }.restaurant-header__inner{min-height:72px}.restaurant-contact,.public-service-tel,.heritage-back{display:none}.restaurant-brand strong{font-size:1.65rem}.restaurant-nav,.public-service-nav,.heritage-nav{padding-inline:12px;gap:18px;overflow-x:auto;white-space:nowrap}.restaurant-hero,.restaurant-body,.public-service-intro,.public-service-body,.heritage-article,.village-notice-page{width:calc(100% - 24px)}
  .restaurant-menu-row{grid-template-columns:64px 1fr 68px;gap:8px 10px}.restaurant-menu-row span{grid-column:2}.restaurant-menu-row p{grid-column:1/3}.restaurant-menu-row em{grid-column:3;grid-row:1/3}.restaurant-section-head{display:block}.restaurant-section-head span{display:block;margin-top:5px}.restaurant-footer{display:grid;gap:3px}
  .service-slogan{display:block}.service-slogan strong{display:block;margin-top:9px;font-size:1.2rem}.public-service-table th{width:90px}.public-service-title h1{font-size:2rem}
  .heritage-focus{grid-template-columns:90px 1fr}.heritage-focus__number{padding-right:18px}.heritage-focus__number span{font-size:2.6rem}.heritage-focus__copy{padding-left:20px}.heritage-index-row{grid-template-columns:62px 1fr;gap:12px}.heritage-lead-photo>p{text-align:left;margin-left:0}
  .old-warning-strip{grid-template-columns:1fr}.old-warning-strip small{grid-column:1}.village-notice-foot{display:grid}
}

/* Stage 3: public news archive + pre-accident tourism cache. These deliberately look like two unrelated real websites. */
.county-site { min-height:100vh; background:#f7f7f5; color:#202321; font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif; }
.county-header { background:#fff; border-bottom:1px solid #d8d9d7; }
.county-header__top { width:min(calc(100% - 32px),1120px); margin:auto; min-height:64px; display:flex; align-items:center; gap:18px; }
.county-brand { font-family:"Noto Serif SC","Songti SC",serif; font-size:1.28rem; font-weight:700; text-decoration:none; letter-spacing:.04em; }
.county-header__top > span { margin-left:auto; color:#8a8e89; font-size:.75rem; }
.county-nav { border-top:1px solid #ececea; width:min(calc(100% - 32px),1120px); margin:auto; min-height:42px; display:flex; align-items:center; gap:26px; color:#666b67; font-size:.82rem; }
.county-nav span { padding:11px 0 9px; }
.county-nav .is-active { color:#1d211e; border-bottom:2px solid #495349; font-weight:650; }
.county-page { width:min(calc(100% - 32px),1120px); margin:42px auto 34px; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:54px; align-items:start; }
.county-article { max-width:760px; }
.county-kicker { margin:0; color:#747a75; font-size:.75rem; letter-spacing:.08em; }
.county-article h1 { font-family:"Noto Serif SC","Songti SC",serif; margin:10px 0 14px; font-size:clamp(1.9rem,4vw,2.75rem); line-height:1.24; font-weight:650; }
.county-byline { display:flex; flex-wrap:wrap; gap:8px 16px; padding:12px 0 18px; border-top:1px solid #e2e3e1; color:#858985; font-size:.72rem; }
.photo--county { width:100%; aspect-ratio:16/8.2; margin:4px 0 24px; }
.county-article > p:not(.county-kicker):not(.county-edit-note) { font-family:"Noto Serif SC","Songti SC",serif; font-size:1rem; line-height:2; margin:0 0 17px; color:#2d312e; }
.county-edit-note { margin-top:30px; padding-top:14px; border-top:1px solid #e2e3e1; color:#7d817d; font-size:.76rem; line-height:1.7; }
.county-side { border-top:3px solid #444d45; }
.county-side section { padding:18px 0; border-bottom:1px solid #dedfdd; }
.county-side h2 { margin:7px 0 10px; font-family:"Noto Serif SC","Songti SC",serif; font-size:1.1rem; }
.county-side p { color:#656a66; line-height:1.75; font-size:.84rem; }
.btn--archive { width:100%; margin-top:7px; background:#3f4941; color:white; border-color:#3f4941; }
.county-related a { color:#354f3a; font-size:.8rem; text-underline-offset:3px; }
.old-comments { width:min(calc(100% - 32px),1120px); margin:0 auto 92px; border-top:1px solid #d8d9d7; padding-top:24px; display:grid; grid-template-columns:1.15fr repeat(3,1fr); gap:0; }
.old-comments__head { padding-right:26px; }
.old-comments__head h2 { margin:8px 0; font-family:"Noto Serif SC","Songti SC",serif; font-size:1.28rem; }
.old-comments__head > p:last-child { color:#787d79; font-size:.78rem; line-height:1.75; }
.old-comment { border-left:1px solid #dedfdd; padding:4px 22px 8px; }
.old-comment__meta { display:flex; gap:10px; align-items:baseline; margin-bottom:9px; }
.old-comment__meta strong { font-size:.82rem; }
.old-comment__meta time { color:#90948f; font-size:.68rem; }
.old-comment p { margin:0; font-family:"Noto Serif SC","Songti SC",serif; color:#4b504c; font-size:.86rem; line-height:1.85; }

.archive-site { min-height:100vh; background:#eee8d9; color:#292b25; font-family:"Noto Serif SC","Songti SC",serif; }
.archive-header { background:#f6f1e2; border-bottom:1px solid #bbb39f; }
.archive-brand { width:min(calc(100% - 32px),1040px); margin:auto; min-height:70px; display:flex; align-items:baseline; gap:14px; }
.archive-brand strong { font-size:1.45rem; font-weight:600; letter-spacing:.08em; }
.archive-brand span { color:#777263; font-size:.72rem; }
.archive-tabs { border-top:1px solid #d4cdbc; width:min(calc(100% - 32px),1040px); margin:auto; display:flex; gap:24px; min-height:40px; align-items:center; color:#666153; font-size:.78rem; }
.archive-tabs span { padding:11px 0 8px; }
.archive-tabs .is-active { border-bottom:2px solid #665c45; color:#2c2b25; }
.archive-banner { width:min(calc(100% - 32px),1040px); margin:32px auto 0; position:relative; background:#504a3f; }
.photo--archive-banner { width:100%; aspect-ratio:16/6.2; display:block; }
.photo--archive-banner::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(24,22,18,.62),rgba(24,22,18,.06) 68%); pointer-events:none; }
.archive-banner__copy { position:absolute; left:clamp(20px,5vw,56px); bottom:clamp(20px,4vw,46px); color:#fffdf4; max-width:580px; text-shadow:0 1px 3px rgba(0,0,0,.35); }
.archive-banner__copy span { font-size:.78rem; letter-spacing:.12em; }
.archive-banner__copy h1 { margin:9px 0 7px; font-weight:500; font-size:clamp(1.8rem,4vw,3rem); }
.archive-banner__copy p { margin:0; font-size:.75rem; opacity:.85; }
.archive-body { width:min(calc(100% - 32px),1040px); margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:46px; padding:38px 0 48px; }
.archive-article { min-width:0; }
.archive-status { margin:0 0 18px; display:inline-block; border:1px solid #b7ae99; padding:5px 8px; color:#766f5e; font-size:.7rem; background:#f5f0e2; }
.archive-article h2 { margin:0 0 16px; font-size:1.75rem; font-weight:560; }
.archive-article > p { line-height:2; margin:0 0 16px; }
.archive-route-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#c5bda9; border:1px solid #c5bda9; margin:28px 0; }
.archive-route-facts div { background:#f5f0e3; padding:16px 14px; display:grid; gap:6px; }
.archive-route-facts span { color:#7b7463; font-size:.7rem; }
.archive-route-facts strong { font-size:.93rem; font-weight:600; }
.archive-note { margin:26px 0; padding:17px 20px; border-left:3px solid #6e6654; background:#e4dcc9; color:#4a463b; line-height:1.9; }
.archived-photo-button { width:100%; border:1px solid #bfb5a1; background:#f8f2e4; padding:0; display:grid; grid-template-columns:150px 1fr; align-items:stretch; cursor:pointer; text-align:left; margin-top:24px; }
.archived-photo-button:hover { background:#fbf6e9; }
.archived-photo-button__thumb { min-height:116px; background-size:cover; background-position:center 27%; filter:saturate(.72) contrast(.94); }
.archived-photo-button__copy { padding:18px; display:grid; align-content:center; gap:6px; }
.archived-photo-button__copy strong { font-size:.92rem; }
.archived-photo-button__copy small { color:#807968; }
.archive-side { border-left:1px solid #c6bdab; padding-left:24px; }
.archive-side section { padding:0 0 18px; margin-bottom:18px; border-bottom:1px dotted #bbb29f; }
.archive-side strong { font-size:.82rem; }
.archive-side p { color:#686255; font-size:.8rem; line-height:1.75; }
.archive-side .text-link { display:block; margin:12px 0; }
.archive-footnote { width:min(calc(100% - 32px),1040px); margin:0 auto 80px; border-top:1px solid #bdb4a0; padding:20px 0 0; display:grid; grid-template-columns:150px 1fr; gap:20px; }
.archive-footnote strong { font-size:.8rem; }
.archive-footnote p { margin:0; line-height:1.9; color:#565146; }
.archive-password .password-clue { background:#eee9dc; border-left:2px solid #6b6659; padding:10px 12px; color:#5d594f; line-height:1.7; font-size:.83rem; }
.old-warning-strip { margin:22px 0; padding:12px 14px; border:1px solid #c6beaa; background:#ebe4d2; display:grid; gap:4px; }
.old-warning-strip span,.old-warning-strip small { color:#746f62; font-size:.72rem; }
.old-warning-strip strong { font-family:ui-sans-serif,system-ui,sans-serif; letter-spacing:.035em; font-size:.85rem; }

.watchman-mosaic { width:min(88vw,860px); height:min(70vh,520px); display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(3,1fr); gap:5px; overflow:hidden; }
.watchman-mosaic__tile { min-width:0; min-height:0; background-size:340%; filter:saturate(.58) contrast(1.05) brightness(.76); transform:scale(1.01); }
.watchman-mosaic__tile--2 { background-size:430%; filter:saturate(.42) contrast(1.12) brightness(.66); }
.watchman-mosaic__tile--3 { background-size:520%; filter:saturate(.68) contrast(.98) brightness(.83); }

@media(max-width:820px){
  .county-page,.archive-body{grid-template-columns:1fr;gap:30px}
  .county-side{display:grid;grid-template-columns:1fr 1fr;gap:22px;border-top:1px solid #d8d9d7}.county-side section{border-bottom:0}
  .old-comments{grid-template-columns:1fr 1fr}.old-comments__head{grid-column:1/-1;padding:0 0 20px}.old-comment{border-top:1px solid #dedfdd;border-left:0;padding:16px 14px 14px 0}
  .archive-side{border-left:0;border-top:1px solid #c6bdab;padding:22px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.archive-side section{border-bottom:0}
}
@media(max-width:600px){
  .county-header__top,.county-nav,.county-page,.old-comments,.archive-brand,.archive-tabs,.archive-banner,.archive-body,.archive-footnote{width:calc(100% - 24px)}
  .county-nav{gap:18px;overflow-x:auto}.county-header__top>span{display:none}
  .county-side,.archive-side{grid-template-columns:1fr}.old-comments{grid-template-columns:1fr}.old-comment{padding-right:0}
  .archive-route-facts{grid-template-columns:1fr}.archived-photo-button{grid-template-columns:110px 1fr}.archive-footnote{grid-template-columns:1fr;gap:6px}
  .photo--archive-banner{aspect-ratio:4/3}.archive-banner__copy{left:18px;bottom:18px;right:18px}.archive-banner__copy h1{font-size:1.65rem}
  .watchman-mosaic{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr);height:62vh}
}

/* Stage 4: a rescue memorial archive and a plain local forum. The contrast keeps the investigation feeling like the open web, not a game menu. */
.memorial-site{min-height:100vh;background:#f4f6f5;color:#232825;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif}
.memorial-header{background:#fff;border-bottom:1px solid #d8dfdc}
.memorial-header__inner{width:min(calc(100% - 32px),1080px);min-height:72px;margin:auto;display:flex;align-items:center;gap:30px}
.memorial-brand{display:grid;gap:3px;text-decoration:none}.memorial-brand strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:1.2rem;letter-spacing:.035em}.memorial-brand span{font-size:.7rem;color:#858d88}
.memorial-nav{margin-left:auto;display:flex;gap:22px;font-size:.8rem;color:#6d756f}.memorial-nav span{padding:27px 0 23px}.memorial-nav .is-active{color:#243127;border-bottom:2px solid #4f6155;font-weight:700}
.memorial-breadcrumb{width:min(calc(100% - 32px),1080px);margin:22px auto 0;display:flex;gap:8px;color:#7c847e;font-size:.73rem}.memorial-breadcrumb a{color:#506258;text-decoration:none}
.memorial-page{width:min(calc(100% - 32px),1080px);margin:24px auto 86px;display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:52px;align-items:start}
.memorial-article{max-width:745px}.memorial-kicker{margin:0;color:#77817b;font-size:.72rem;letter-spacing:.07em}.memorial-article h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(1.9rem,4.4vw,2.8rem);font-weight:650;line-height:1.26;margin:10px 0 12px}.memorial-lead{font-family:"Noto Serif SC","Songti SC",serif;color:#5d665f;font-size:1.03rem!important;line-height:1.9!important;border-bottom:1px solid #dde2df;padding-bottom:18px;margin-bottom:22px!important}.memorial-article>p{font-family:"Noto Serif SC","Songti SC",serif;line-height:2;font-size:1rem;color:#303733;margin:0 0 17px}.photo--memorial{width:100%;aspect-ratio:16/8.8;margin:4px 0 24px}.memorial-quote{margin:28px 0;padding:17px 20px;border-left:3px solid #5b6c62;background:#e8edeb;color:#455049;font-family:"Noto Serif SC","Songti SC",serif;line-height:1.9}
.responsibility-note{margin-top:34px;border-top:1px solid #cfd7d2;padding-top:24px}.responsibility-note h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:1.35rem;margin:0 0 8px}.memorial-fact{display:grid;grid-template-columns:115px 1fr;gap:22px;padding:14px 0;border-bottom:1px solid #e0e5e2}.memorial-fact strong{font-size:.78rem;color:#506058}.memorial-fact p{margin:0;font-size:.88rem;line-height:1.82;color:#505a54}
.memorial-side{border-top:3px solid #516159}.memorial-side section{padding:18px 0;border-bottom:1px solid #d7ddda;display:grid;gap:9px}.memorial-side__label{font-size:.7rem;color:#858d88;letter-spacing:.08em}.memorial-side strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:1.18rem}.memorial-side p{margin:0;color:#656e68;font-size:.83rem;line-height:1.75}.memorial-side a:not(.btn){color:#405b4a;font-size:.8rem;text-underline-offset:3px}.btn--memorial{margin-top:5px;background:#4d5f54;border-color:#4d5f54;color:#fff}
.local-forum-site{min-height:100vh;background:#e9e5db;color:#2e302c;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;padding-bottom:90px}.local-forum-header{background:#39453c;color:#f6f4eb}.local-forum-header__hero{width:min(calc(100% - 32px),1100px);min-height:88px;margin:auto;display:flex;align-items:flex-end;gap:14px;padding-bottom:18px}.local-forum-header__hero strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:1.55rem;letter-spacing:.06em}.local-forum-header__hero span{font-size:.73rem;color:#cfd5cf;padding-bottom:3px}.local-forum-nav{background:#f5f2e9;color:#66665f;border-bottom:1px solid #cbc6b9;min-height:42px;display:flex;align-items:center;gap:24px;padding:0 max(16px,calc((100vw - 1100px)/2));font-size:.78rem;overflow-x:auto;white-space:nowrap}.local-forum-nav span{padding:12px 0 10px}.local-forum-nav .is-active{font-weight:700;color:#2d3c31;border-bottom:2px solid #4f5f53}
.forum-layout{width:min(calc(100% - 32px),1100px);margin:30px auto;display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:28px;align-items:start}.forum-thread{background:#faf8f1;border:1px solid #cbc6b9;box-shadow:0 2px 10px rgba(65,58,46,.05)}.forum-thread__head{display:flex;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid #d7d2c6}.forum-path{margin:0 0 8px!important;color:#8a887e;font-size:.7rem!important}.forum-thread__head h1{font-family:"Noto Serif SC","Songti SC",serif;margin:0 0 8px;font-size:1.55rem}.forum-thread__head p{margin:0;color:#8b8981;font-size:.72rem}.forum-thread__tag{align-self:flex-start;border:1px solid #aaa69b;background:#efebe0;padding:4px 8px;font-size:.68rem;color:#716f67}
.forum-post{display:grid;grid-template-columns:42px 1fr;gap:13px;padding:18px 22px;border-bottom:1px solid #e1ddd3}.forum-post:last-child{border-bottom:0}.forum-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#d7d2c6;color:#565951;font-family:"Noto Serif SC","Songti SC",serif;font-weight:700}.forum-post__head{display:flex;align-items:center;gap:8px;min-height:24px}.forum-post__head strong{font-size:.84rem}.forum-post__head time{margin-left:auto;color:#9a978f;font-size:.68rem}.forum-badge{border:1px solid #9aa49c;color:#55645a;background:#edf0ec;font-size:.62rem;padding:2px 5px;border-radius:3px}.forum-post__body p{font-family:"Noto Serif SC","Songti SC",serif;margin:7px 0 0;line-height:1.85;color:#454842;font-size:.9rem}.forum-quote{margin:8px 0 0;padding:9px 11px;background:#efede5;border-left:2px solid #aaa598;color:#76736a;font-size:.78rem;line-height:1.6}.forum-likes{display:block;margin-top:8px;color:#96938a;font-size:.68rem}
.forum-side{display:grid;gap:16px}.photo--yougen{width:100%;aspect-ratio:4/5.4}.forum-profile,.forum-side-note{background:#f7f4eb;border:1px solid #cbc6b9;padding:16px}.forum-profile h2{font-family:"Noto Serif SC","Songti SC",serif;margin:0 0 10px}.forum-profile p,.forum-side-note p{color:#5f625b;line-height:1.75;font-size:.82rem}.forum-profile__plain{padding-top:10px;border-top:1px dotted #c5c0b5}.forum-side-note strong{font-size:.8rem}.forum-side-note a{color:#3e5b48;font-size:.78rem;text-underline-offset:3px}
@media(max-width:820px){.memorial-page,.forum-layout{grid-template-columns:1fr;gap:28px}.memorial-side{display:grid;grid-template-columns:1fr 1fr;gap:20px}.memorial-side section{border-bottom:0}.forum-side{grid-template-columns:180px 1fr}.photo--yougen{grid-row:1/3}}
@media(max-width:600px){.memorial-header__inner,.memorial-breadcrumb,.memorial-page,.forum-layout,.local-forum-header__hero{width:calc(100% - 24px)}.memorial-header__inner{min-height:64px}.memorial-brand span{display:none}.memorial-nav{gap:14px}.memorial-nav span{padding:22px 0 18px}.memorial-fact{grid-template-columns:1fr;gap:5px}.memorial-side{grid-template-columns:1fr}.forum-thread__head{padding:18px 16px}.forum-post{grid-template-columns:34px 1fr;padding:16px 14px;gap:10px}.forum-avatar{width:32px;height:32px}.forum-post__head{flex-wrap:wrap}.forum-post__head time{width:100%;margin-left:0}.forum-side{grid-template-columns:1fr}.photo--yougen{grid-row:auto;aspect-ratio:16/10;background:#ddd}.local-forum-header__hero{min-height:76px;align-items:center;padding-bottom:0}.local-forum-header__hero span{display:none}}

/* The chat footer behaves like an in-app linked-source preview, not an author hint card. */
.chat-next--source {
  min-height: 52px;
  padding: 6px 2px 6px 11px;
  border-left: 2px solid #c9d0c9;
}
.chat-next--source strong {
  display: block;
  margin-bottom: 2px;
  font-size: .82rem;
  font-weight: 650;
  color: #4d564e;
}
.chat-next--source p {
  line-height: 1.45;
}
@media (max-width: 560px) {
  .chat-next--source { align-items: flex-start; }
  .chat-next--source .btn { flex: 0 0 auto; }
}

@media (max-width: 760px) {
  /* Reserve the lower-right corner for the two global accessibility controls on chat screens. */
  .chat-composer:not(.chat-composer--ending) {
    padding-right: 96px;
  }
}
