
/* City passport page */
.passport-hero{padding:28px 0 34px}
.passport-hero-card{position:relative;overflow:hidden;min-height:620px;border-radius:38px;background:linear-gradient(130deg,#f7fbf9 0%,#ecf6f1 45%,#e9e6ff 100%);border:1px solid rgba(255,255,255,.88);box-shadow:0 30px 80px rgba(20,49,39,.14);display:grid;grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);align-items:stretch;isolation:isolate}
.passport-hero-card::before{content:"";position:absolute;left:-170px;bottom:-250px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(20,151,101,.2),rgba(20,151,101,0) 68%);z-index:-1}
.passport-hero-card::after{content:"";position:absolute;right:-100px;top:-180px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(106,90,249,.22),rgba(106,90,249,0) 68%);z-index:-1}
.passport-hero-copy{position:relative;z-index:3;align-self:center;padding:clamp(38px,5vw,76px)}
.passport-kicker,.passport-eyebrow{display:inline-flex;align-items:center;gap:9px;color:#0c7d52;font-size:12px;font-weight:900;text-transform:uppercase}
.passport-kicker span{width:9px;height:9px;border-radius:50%;background:#169766;box-shadow:0 0 0 7px rgba(22,151,102,.12)}
.passport-hero h1{max-width:760px;margin:18px 0 18px;font-size:clamp(58px,6.1vw,102px);line-height:.9;font-weight:900}
.passport-hero h1 em{display:block;color:#159262;font-style:normal}
.passport-hero-copy>p{max-width:690px;margin:0;color:#536861;font-size:clamp(17px,1.35vw,21px);line-height:1.62}
.passport-hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.passport-hero-tags span{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(19,35,30,.08);box-shadow:0 8px 22px rgba(24,56,44,.07);font-size:13px;font-weight:800;color:#314941}
.passport-hero-tags .icon{width:17px;height:17px;color:#159262}
.passport-hero-art{position:relative;min-height:620px;overflow:hidden}
.hero-city-line{position:absolute;inset:10% -8% -10% 4%;border-radius:48% 42% 0 0;background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,255,255,.08));transform:rotate(-5deg)}
.hero-city-svg{position:absolute;width:112%;max-width:none;right:-9%;bottom:-2%;filter:drop-shadow(0 24px 34px rgba(25,56,45,.12))}
.passport-document{position:absolute;right:6%;top:8%;width:min(420px,74%);padding:22px;border-radius:26px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.95);box-shadow:0 24px 60px rgba(28,55,46,.18);backdrop-filter:blur(18px);transform:rotate(3deg)}
.passport-doc-head{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid rgba(19,35,30,.1)}
.passport-doc-seal{width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:#154734;color:#fff;font-weight:900;box-shadow:0 12px 24px rgba(21,71,52,.25)}
.passport-doc-head small{display:block;color:#75837d;font-size:10px;font-weight:900}
.passport-doc-head strong{display:block;margin-top:3px;font-size:24px}
.passport-doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:17px}
.passport-doc-grid span{padding:12px;border-radius:15px;background:#f5f8f7}
.passport-doc-grid small{display:block;color:#7c8984;font-size:9px;font-weight:900}
.passport-doc-grid b{display:block;margin-top:4px;font-size:12px;line-height:1.35}
.passport-doc-code{margin-top:16px;color:#85928d;font:700 9px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}

.passport-section{padding:66px 0}
.passport-section--identity{padding-top:44px}
.passport-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:34px;margin-bottom:28px}
.passport-section-head h2{margin:8px 0 0;font-size:clamp(34px,3.5vw,58px);line-height:1}
.passport-section-head>p{max-width:620px;margin:0;color:#64756f;font-size:16px;line-height:1.55}
.identity-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr);gap:22px;align-items:stretch}
.identity-card{padding:30px;border-radius:30px;background:#fff;border:1px solid rgba(19,35,30,.08);box-shadow:0 18px 50px rgba(19,46,36,.09)}
.identity-card-top{display:grid;grid-template-columns:108px 1fr auto;align-items:center;gap:20px;padding-bottom:24px;border-bottom:1px solid rgba(19,35,30,.09)}
.identity-avatar{width:108px;height:108px;border-radius:24px;overflow:hidden;background:#f1f6f3}
.identity-label{color:#7d8b86;font-size:10px;font-weight:900;text-transform:uppercase}
.identity-card-top h3{margin:3px 0 4px;font-size:34px}
.identity-card-top p{margin:0;color:#6d7d77}
.identity-stamp{width:92px;height:92px;display:grid;place-items:center;text-align:center;border-radius:50%;border:3px solid #159262;color:#159262;font-size:22px;font-weight:900;line-height:1;transform:rotate(-7deg)}
.identity-stamp small{font-size:9px;text-transform:uppercase}
.identity-table{margin:24px 0 0}
.identity-table>div{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:14px 0;border-bottom:1px dashed rgba(19,35,30,.11)}
.identity-table dt{color:#74827d;font-size:13px}
.identity-table dd{margin:0;font-weight:800}
.identity-note{display:flex;align-items:flex-start;gap:9px;margin-top:20px;padding:14px 16px;border-radius:16px;background:#eef8f3;color:#48645a;font-size:12px;line-height:1.5}
.identity-note .icon{width:18px;color:#159262}
.identity-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.metric-card{position:relative;overflow:hidden;min-height:220px;padding:24px;border-radius:26px;background:linear-gradient(180deg,#fff,#f8fbfa);border:1px solid rgba(19,35,30,.08);box-shadow:0 14px 34px rgba(19,46,36,.07)}
.metric-card::after{content:"";position:absolute;right:-36px;bottom:-48px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(22,151,102,.13),rgba(22,151,102,0) 70%)}
.metric-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#e4f5ec;color:#108156}
.metric-card strong{display:block;margin-top:24px;font-size:36px;line-height:1}
.metric-card p{margin:12px 0 0;color:#4e635b;font-size:14px;line-height:1.45}
.metric-card small{display:block;margin-top:16px;color:#81908a;font-size:11px;font-weight:800}
.metric-card--population{background:linear-gradient(145deg,#154734,#1e6b4c);color:#fff}
.metric-card--population .metric-icon{background:rgba(255,255,255,.12);color:#b8efd3}
.metric-card--population p,.metric-card--population small{color:rgba(255,255,255,.7)}
.metric-card--age{background:linear-gradient(145deg,#6a5af9,#4c3acb);color:#fff}
.metric-card--age .metric-icon{background:rgba(255,255,255,.12);color:#fff}
.metric-card--age p,.metric-card--age small{color:rgba(255,255,255,.72)}

.city-dna-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dna-card{position:relative;overflow:hidden;min-height:320px;padding:24px;border-radius:28px;background:#fff;border:1px solid rgba(19,35,30,.08);box-shadow:0 16px 38px rgba(19,46,36,.08);transition:.22s ease}
.dna-card:hover{transform:translateY(-5px);box-shadow:0 24px 48px rgba(19,46,36,.12)}
.dna-number{color:#9aa7a2;font-size:11px;font-weight:900}
.dna-symbol{width:90px;height:90px;display:grid;place-items:center;margin:24px 0 18px;border-radius:27px;font-size:46px;font-weight:300}
.dna-card h3{margin:0;font-size:24px}
.dna-card p{margin:10px 0 20px;color:#687973;font-size:14px;line-height:1.55}
.dna-card>span{position:absolute;left:24px;bottom:22px;color:#547067;font-size:11px;font-weight:900;text-transform:uppercase}
.dna-card--forest .dna-symbol{background:#dff4e9;color:#0c8354}.dna-card--river .dna-symbol{background:#e2f2f8;color:#3187aa}.dna-card--industry .dna-symbol{background:#f2ecff;color:#6554dd}.dna-card--culture .dna-symbol{background:#fff0dc;color:#be6d20}
.passport-section--districts{background:linear-gradient(180deg,rgba(234,242,238,.6),rgba(244,247,246,0))}
.district-passport-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.district-passport-card{display:grid;grid-template-columns:74px 1fr auto;gap:18px;align-items:center;padding:24px;border-radius:25px;background:#fff;border:1px solid rgba(19,35,30,.08);box-shadow:0 12px 32px rgba(19,46,36,.07)}
.district-code{width:74px;height:74px;display:grid;place-items:center;border-radius:22px;background:#154734;color:#fff;font-size:22px;font-weight:900}
.district-passport-card:nth-child(2) .district-code{background:#6a5af9}.district-passport-card:nth-child(3) .district-code{background:#3187aa}.district-passport-card:nth-child(4) .district-code{background:#c16b25}
.district-passport-card small{color:#788782;font-size:10px;font-weight:900;text-transform:uppercase}
.district-passport-card h3{margin:3px 0 6px;font-size:22px}
.district-passport-card p{margin:0;color:#687973;font-size:13px;line-height:1.45}
.district-passport-card a{align-self:end;color:#0d8255;font-size:12px;font-weight:900;white-space:nowrap}
.history-symbol-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.history-panel{padding:30px;border-radius:30px;background:#fff;border:1px solid rgba(19,35,30,.08);box-shadow:0 16px 42px rgba(19,46,36,.08)}
.passport-section-head--inside{margin-bottom:16px}
.timeline{display:grid;gap:0}
.timeline-item{display:grid;grid-template-columns:76px 18px 1fr;gap:14px;min-height:106px}
.timeline-item time{padding-top:4px;color:#154734;font-size:21px;font-weight:900}
.timeline-item>span{position:relative;width:2px;background:#d9e6df;margin-left:7px}
.timeline-item>span::before{content:"";position:absolute;left:-6px;top:7px;width:14px;height:14px;border-radius:50%;background:#159262;box-shadow:0 0 0 6px #e5f5ed}
.timeline-item:last-child>span{background:linear-gradient(#d9e6df,transparent)}
.timeline-item h3{margin:0;font-size:18px}
.timeline-item p{margin:6px 0 0;color:#6a7a74;font-size:13px;line-height:1.5}
.symbol-panel{position:relative;overflow:hidden;padding:34px;border-radius:30px;background:linear-gradient(145deg,#872c34,#5e1f29);color:#fff;box-shadow:0 22px 54px rgba(75,25,33,.2)}
.symbol-panel::after{content:"";position:absolute;right:-100px;bottom:-120px;width:300px;height:300px;border-radius:50%;border:54px solid rgba(255,255,255,.05)}
.passport-eyebrow--light{color:#f4cfd3}
.symbol-panel h2{position:relative;z-index:2;margin:14px 0 14px;font-size:clamp(32px,3vw,50px);line-height:1.02}
.symbol-panel p{position:relative;z-index:2;margin:0;color:rgba(255,255,255,.72);font-size:15px;line-height:1.6}
.symbol-flag{position:relative;overflow:hidden;height:170px;margin-bottom:28px;border-radius:22px;box-shadow:0 18px 38px rgba(37,10,14,.28)}
.symbol-red{position:absolute;inset:0 0 25% 0;background:#a5303b}.symbol-green{position:absolute;inset:75% 0 0 0;background:#1c7049}
.symbol-mortar{position:absolute;left:50%;top:50%;width:90px;height:52px;transform:translate(-50%,-45%)}
.symbol-mortar span{position:absolute;left:25px;top:9px;width:42px;height:24px;border-radius:7px 7px 18px 18px;background:#efc35d;transform:rotate(-8deg)}
.symbol-mortar i,.symbol-mortar b{position:absolute;bottom:0;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle,#1d2522 0 24%,transparent 26% 40%,#1d2522 42% 64%,transparent 66%)}
.symbol-mortar i{left:-4px}.symbol-mortar b{right:-4px}
.symbol-legend{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.symbol-legend span{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.72);font-size:11px;font-weight:800}.symbol-legend i{width:10px;height:10px;border-radius:50%}.legend-red{background:#d9535f}.legend-green{background:#39a875}.legend-gold{background:#efc35d}
.passport-section--utility{padding-top:30px}
.utility-card{display:flex;align-items:center;justify-content:space-between;gap:34px;padding:34px 38px;border-radius:30px;background:linear-gradient(135deg,#eef8f3,#fff);border:1px solid #dcebe3;box-shadow:0 16px 40px rgba(19,46,36,.08)}
.utility-copy{max-width:760px}.utility-copy h2{margin:9px 0 10px;font-size:clamp(30px,3vw,48px);line-height:1.03}.utility-copy p{margin:0;color:#667872}
.utility-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.passport-action{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border-radius:15px;background:#fff;border:1px solid rgba(19,35,30,.1);font-weight:900;box-shadow:0 8px 20px rgba(19,46,36,.07)}
.passport-action--primary{background:#159262;border-color:#159262;color:#fff;box-shadow:0 12px 26px rgba(21,146,98,.24)}
.passport-sources{margin-top:16px;padding:0 8px;color:#7b8984;font-size:11px;line-height:1.55}

@media(max-width:1180px){.passport-hero-card{grid-template-columns:1fr .95fr}.passport-hero-art{min-height:560px}.passport-document{right:2%;width:82%}.identity-layout{grid-template-columns:1fr}.city-dna-grid{grid-template-columns:1fr 1fr}.history-symbol-layout{grid-template-columns:1fr}.utility-card{align-items:flex-start;flex-direction:column}.utility-links{justify-content:flex-start}}
@media(max-width:820px){.passport-hero-card{grid-template-columns:1fr;min-height:auto}.passport-hero-copy{padding:42px 28px 20px}.passport-hero-art{min-height:430px}.hero-city-svg{width:100%;right:-3%}.passport-document{top:8px;right:24px;width:min(390px,78%)}.passport-section{padding:50px 0}.passport-section-head{align-items:flex-start;flex-direction:column;gap:12px}.identity-metrics,.district-passport-grid{grid-template-columns:1fr 1fr}.identity-card-top{grid-template-columns:86px 1fr}.identity-avatar{width:86px;height:86px}.identity-stamp{display:none}.identity-table>div{grid-template-columns:180px 1fr}.district-passport-card{grid-template-columns:64px 1fr}.district-code{width:64px;height:64px}.district-passport-card a{grid-column:2}.utility-links{width:100%}}
@media(max-width:590px){.passport-hero{padding-top:14px}.passport-hero-card{border-radius:26px}.passport-hero h1{font-size:54px}.passport-hero-copy>p{font-size:16px}.passport-hero-tags{display:grid}.passport-hero-tags span{justify-content:flex-start}.passport-hero-art{min-height:380px}.passport-document{top:0;right:12px;width:88%;padding:16px}.passport-doc-grid{gap:8px}.passport-doc-grid span{padding:9px}.hero-city-svg{width:125%;right:-25%}.identity-card{padding:20px}.identity-card-top{grid-template-columns:72px 1fr;gap:14px}.identity-avatar{width:72px;height:72px}.identity-card-top h3{font-size:28px}.identity-table>div{grid-template-columns:1fr;gap:4px}.identity-metrics,.city-dna-grid,.district-passport-grid{grid-template-columns:1fr}.metric-card{min-height:190px}.dna-card{min-height:280px}.district-passport-card{grid-template-columns:58px 1fr;padding:18px}.district-code{width:58px;height:58px}.history-panel,.symbol-panel{padding:22px}.timeline-item{grid-template-columns:60px 16px 1fr}.utility-card{padding:26px 20px}.utility-links{display:grid;grid-template-columns:1fr;width:100%}.passport-action{justify-content:center}}
