/* City Gallery follows the established JIYI project editorial typography. */
@font-face{font-family:"JIYI City Sans";src:url("/assets/fonts/jiyi-city-medium-20261004.woff") format("woff");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"JIYI City Serif";src:url("/assets/fonts/jiyi-city-serif-20261004.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
.city-gallery--editorial{--city-sans:"JIYI City Sans",var(--sans);--city-serif:"JIYI City Serif",var(--serif);background:#faf8f4;font-family:var(--city-sans);font-weight:500;font-synthesis:none}
.city-gallery--editorial .container{width:min(calc(100% - 112px),1180px)}
.city-gallery--editorial p{font:500 1rem/2 var(--city-sans);letter-spacing:.025em}
.city-gallery--editorial h1{font:400 clamp(2.5rem,4.8vw,4.25rem)/1.5 var(--city-serif);letter-spacing:.025em;margin:0}
.city-gallery--editorial h2{font:400 clamp(1.75rem,2.5vw,2.375rem)/1.6 var(--city-serif);letter-spacing:.04em;margin:0}
.city-gallery--editorial h3{font:500 1.25rem/1.8 var(--city-sans);letter-spacing:.025em}
.city-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:center;padding-block:66px 72px}
.city-intro{min-width:0}
.city-gallery--editorial .city-kicker{font:400 .875rem/1.7 Arial,sans-serif;letter-spacing:.24em;color:var(--gold);margin:0 0 24px}
.city-gallery--editorial .city-english{font:400 1rem/1.8 Georgia,serif;letter-spacing:.2em;margin:6px 0 32px;color:var(--muted)}
.city-gallery--editorial .city-lead{font:400 clamp(1.375rem,2.1vw,1.875rem)/1.8 var(--city-serif);letter-spacing:.04em;color:var(--ink);margin:0 0 20px}
.city-gallery--editorial .city-hero-note{margin:0;color:var(--muted);max-width:29rem}
.city-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:32px}
.city-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 26px;background:#34332d;color:#fff;border:1px solid #34332d;text-decoration:none;font:500 .9375rem/1.6 var(--city-sans);letter-spacing:.06em}
.city-button:hover{background:#514c43;border-color:#514c43;text-decoration:none}
.city-text-link{display:inline-block;width:fit-content;border-bottom:1px solid var(--gold);padding-bottom:4px;text-decoration:none;font:500 .9375rem/1.8 var(--city-sans);letter-spacing:.025em}
.city-gallery--editorial a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.city-hero-image,.city-meaning-image{margin:0;min-width:0;width:100%;justify-self:end}
.city-hero-image .city-reference-panel{box-shadow:10px 12px 0 #ebe6dc}
.city-reference-panel{position:relative;overflow:hidden;width:100%;background:#ede7da}
.city-reference-panel img{position:absolute;max-width:none;height:auto;display:block}
.city-gallery--editorial figcaption{font:500 .875rem/1.8 var(--city-sans);color:var(--muted);margin-top:20px;letter-spacing:.025em}
.city-section{padding-block:72px;scroll-margin-top:105px}
.city-section-heading{display:flex;align-items:center;gap:22px;min-width:0}
.city-section-number{flex:none;font:400 3.5rem/1 Georgia,serif;color:#a2947f;letter-spacing:-.03em;border-right:1px solid var(--line);padding-right:22px}
.city-gallery--editorial .city-section-heading p{font:400 .8125rem/1.8 Georgia,serif;letter-spacing:.2em;color:var(--muted);margin:4px 0 0}
.city-purpose{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start;border-top:1px solid var(--line)}
.city-purpose-copy p{margin:0 0 20px}
.city-purpose-copy p:last-child{margin-bottom:0}
.city-meaning{background:#eeeae2}
.city-meaning-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:80px;align-items:center}
.city-meaning-copy{margin-top:32px;max-width:34rem}
.city-meaning-copy p{margin:0 0 22px}
.city-meaning blockquote{margin:30px 0 0;padding-left:22px;border-left:1px solid var(--gold);font:400 1.5rem/1.9 var(--city-serif);letter-spacing:.05em}
.city-meaning-image{max-width:380px}
.city-values-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:44px}
.city-values-grid article{min-width:0;padding-top:22px;border-top:1px solid var(--line)}
.city-gallery--editorial .city-value-label{font-size:.875rem;color:var(--gold);margin:0 0 16px}
.city-values-grid h3{margin:0 0 16px}
.city-values-grid article>p:last-child{margin:0;color:var(--muted)}
.city-locations{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;align-items:start;border-top:1px solid var(--line)}
.city-invitation p{margin:0 0 16px;color:var(--muted)}
.city-gallery--editorial .city-status{font-size:1.0625rem;color:var(--ink)}
.city-gallery--editorial .city-note{font-size:.875rem;margin:20px 0 0}
.city-cooperate{padding-block:42px;background:#eeebe4;scroll-margin-top:105px}
.city-cooperate-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:60px;align-items:center}
.city-gallery--editorial .city-cooperate-copy h2{font-size:1.5rem;margin:0 0 16px}
.city-gallery--editorial .city-cooperate-copy p{font-size:.9375rem;margin:0 0 16px;color:var(--muted)}
.city-download{border-left:1px solid #d4cec1;padding-left:34px;min-width:0}
.city-gallery--editorial .city-download p{margin:0 0 12px}
.city-download>span{display:block;margin-top:12px;font:500 .875rem/1.8 var(--city-sans);color:var(--muted)}
@media(max-width:1000px){.city-hero{gap:40px}.city-purpose,.city-locations{gap:40px}.city-meaning-grid{gap:44px}.city-values-grid{gap:24px}.city-cooperate-grid{gap:40px}}
@media(max-width:760px){
  .city-gallery--editorial .container{width:calc(100% - 48px)}
  .city-hero{grid-template-columns:1fr;gap:36px;padding-block:40px 48px}
  .city-gallery--editorial h1{font-size:clamp(2rem,8.7vw,3.5rem)}
  .city-gallery--editorial .city-english{font-size:.875rem;letter-spacing:.18em;margin-bottom:24px}
  .city-hero-image{justify-self:center;max-width:580px}
  .city-hero-actions{gap:22px;margin-top:24px}
  .city-section{padding-block:48px;scroll-margin-top:88px}
  .city-purpose,.city-meaning-grid,.city-values-grid,.city-locations,.city-cooperate-grid{grid-template-columns:1fr;gap:30px}
  .city-section-number{font-size:2.875rem;padding-right:18px}
  .city-section-heading{gap:18px}
  .city-meaning-copy{margin-top:24px}
  .city-meaning blockquote{font-size:1.25rem}
  .city-meaning-image{justify-self:center;max-width:380px}
  .city-values-grid{margin-top:28px}
  .city-download{border-left:0;border-top:1px solid #d4cec1;padding:24px 0 0}
  .city-cooperate{scroll-margin-top:88px}
}
