/* City reuses the 1.51.5 Home semantic appearance tokens from site.css. */
.tpw-city-public{--tpw-control-accent:var(--home-accent);--tpw-control-accent-text:var(--home-accent-text);min-width:320px;overflow-x:hidden;background:var(--home-page);color:var(--home-text)}
.tpw-city-public :where(h1,h2,h3,p,a,button,input){overflow-wrap:anywhere}
.tpw-city-public .tpw-site-header{background:color-mix(in srgb,var(--home-page) 92%,transparent);border-color:var(--home-border)}
.tpw-city-public .tpw-brand,.tpw-city-public .tpw-brand small,.tpw-city-public .tpw-nav a{color:var(--home-text)}
.tpw-city-public .tpw-brand-mark{background:var(--home-accent);color:var(--home-accent-text)}
.tpw-city-header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.tpw-city-appearance{min-width:72px;min-height:44px;padding:.55rem .8rem;border:1px solid var(--home-border);border-radius:999px;background:var(--home-surface);color:var(--home-text);font:800 .82rem/1 var(--tpw-body);cursor:pointer}
.tpw-city-appearance:focus-visible{outline:3px solid var(--home-accent);outline-offset:3px}
.tpw-city-hero{position:relative;isolation:isolate;padding:clamp(5rem,10vw,9rem) 0;border-bottom:1px solid var(--home-border);background:radial-gradient(circle at 78% 25%,color-mix(in srgb,var(--home-accent) 24%,transparent),transparent 28rem),linear-gradient(145deg,var(--home-surface-alt),var(--home-page));overflow:hidden}
.tpw-city-hero:after{content:"";position:absolute;z-index:-1;right:-8rem;bottom:-15rem;width:34rem;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--home-accent) 40%,transparent);border-radius:50%}
.tpw-city-hero h1{max-width:16ch;margin:.3rem 0 1rem;font-size:clamp(3.4rem,9vw,8rem);color:var(--home-text)}
.tpw-city-hero>div>p:not(.tpw-kicker){max-width:58ch;color:var(--home-text-secondary);font-size:clamp(1rem,2vw,1.25rem)}
.tpw-city-public .tpw-kicker{color:var(--home-accent)}
.tpw-city-search-entry{display:grid;gap:.65rem;max-width:760px;margin-top:2rem}
.tpw-city-search-entry label,.tpw-city-search-form label{font-weight:850;color:var(--home-text)}
.tpw-city-search-entry>div{display:flex;gap:.65rem}
.tpw-city-search-entry .tpw-button,.tpw-city-search-form .tpw-button{flex:0 0 auto;white-space:nowrap;overflow-wrap:normal}
.tpw-city-search-entry input,.tpw-city-search-form input{width:100%;min-width:0;min-height:50px;padding:.8rem 1rem;border:1px solid var(--home-border);border-radius:999px;background:var(--home-input);color:var(--home-input-text);font:inherit}
.tpw-city-search-entry input::placeholder,.tpw-city-search-form input::placeholder{color:var(--home-input-muted);opacity:1}
.tpw-city-search-entry input:focus-visible,.tpw-city-search-form input:focus-visible{border-color:var(--home-accent);outline:3px solid color-mix(in srgb,var(--home-accent) 35%,transparent);outline-offset:2px}
.tpw-city-public .tpw-button{border-color:var(--home-accent);background:var(--home-accent);color:var(--home-accent-text)!important}
.tpw-city-public .tpw-button-secondary{border-color:var(--home-border);background:var(--home-surface);color:var(--home-text)!important}
.tpw-city-public .tpw-section{border-bottom:1px solid var(--home-border);background:var(--home-page);color:var(--home-text)}
.tpw-city-public .tpw-section:nth-of-type(even),.tpw-city-recent{background:var(--home-surface-alt)}
.tpw-city-public .tpw-section-heading h2{color:var(--home-text)}
.tpw-city-public .tpw-section-heading>a{color:var(--home-accent)}
.tpw-city-home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.tpw-city-home-card{display:grid;grid-template-columns:clamp(88px,34%,150px) minmax(0,1fr);gap:1rem;min-width:0;padding:1rem;border:1px solid var(--home-border);border-radius:var(--tpw-radius);background:var(--home-surface);color:var(--home-text);box-shadow:0 12px 32px #00000012}
.tpw-city-home-card>div{min-width:0}
.tpw-city-home-art{display:grid;width:100%;aspect-ratio:1;place-items:center;overflow:hidden;border-radius:calc(var(--tpw-radius) - 6px);background:var(--home-surface-alt);color:var(--home-text);text-decoration:none}
.tpw-city-home-art img{width:100%;height:100%;object-fit:cover}
.tpw-city-home-fallback{font:900 clamp(2.2rem,6vw,4rem)/1 var(--tpw-heading);background:linear-gradient(145deg,var(--home-surface-alt),color-mix(in srgb,var(--home-accent) 25%,var(--home-surface)))}
.tpw-city-home-card h3{margin:.2rem 0 .55rem;font-size:clamp(1.2rem,2vw,1.55rem)}
.tpw-city-home-card h3 a{text-decoration:none}
.tpw-city-home-card p:not(.tpw-kicker){display:-webkit-box;margin:0 0 .8rem;overflow:hidden;color:var(--home-text-secondary);font-size:.9rem;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.tpw-city-card-link{display:inline-flex;min-height:44px;align-items:center;color:var(--home-accent);font-weight:850;text-underline-offset:4px}
.tpw-city-content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.tpw-city-public .tpw-content-card{min-width:0;border-color:var(--home-border);background:var(--home-surface);color:var(--home-text)}
.tpw-city-public .tpw-card-image{aspect-ratio:16/9;background:var(--home-surface-alt)}
.tpw-city-public .tpw-card-body h3 a{color:var(--home-text)}
.tpw-city-public .tpw-card-body>p:not(.tpw-meta){color:var(--home-text-secondary)}
.tpw-city-public .tpw-meta,.tpw-city-public .tpw-result-count{color:var(--home-muted)}
.tpw-city-page-hero{border-bottom:1px solid var(--home-border);background:linear-gradient(145deg,var(--home-surface-alt),var(--home-page));color:var(--home-text)}
.tpw-city-page-hero :where(h1,p,label){color:var(--home-text)}
.tpw-city-page-hero>div>p:not(.tpw-kicker){color:var(--home-text-secondary)}
.tpw-city-search-form{margin-top:2rem}
.tpw-city-public .tpw-results{max-width:920px}
.tpw-city-public .tpw-result{min-width:0;border-color:var(--home-border);background:var(--home-surface);color:var(--home-text)}
.tpw-city-public .tpw-result :where(h2,h2 a,p){color:var(--home-text)}
.tpw-city-public .tpw-result-type{color:var(--home-accent)}
.tpw-city-public .tpw-empty{border-color:var(--home-border);background:color-mix(in srgb,var(--home-surface) 82%,transparent);color:var(--home-text)}
.tpw-city-public .tpw-empty p{color:var(--home-text-secondary)}
.tpw-city-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem;color:var(--home-muted)}
.tpw-city-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem}
.tpw-city-footer nav{display:flex;flex-wrap:wrap;gap:1rem}
.tpw-city-public .tpw-footer{border-top:1px solid var(--home-border);background:var(--home-surface-alt);color:var(--home-text)}
.tpw-city-public .tpw-footer :where(p,a){color:var(--home-text-secondary)}
html[data-city-appearance="light"] .tpw-city-public{color-scheme:light}
html[data-city-appearance="dark"] .tpw-city-public{color-scheme:dark}
@media(max-width:1024px){.tpw-city-home-grid,.tpw-city-content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tpw-city-home-card{grid-template-columns:110px minmax(0,1fr)}}
@media(max-width:900px){.tpw-city-public .tpw-nav{top:76px}.tpw-city-public .tpw-nav.is-open{display:flex}.tpw-city-public .tpw-header-inner{gap:.75rem}.tpw-city-header-actions{order:2}.tpw-city-public .tpw-nav{order:3}.tpw-city-public .tpw-menu-button{display:block}}
@media(max-width:600px){.tpw-city-public .tpw-container{width:min(100% - 28px,1180px)}.tpw-city-home-grid,.tpw-city-content-grid{grid-template-columns:minmax(0,1fr)}.tpw-city-home-card{grid-template-columns:92px minmax(0,1fr);padding:.85rem}.tpw-city-search-entry>div,.tpw-city-search-form>div{flex-direction:column}.tpw-city-search-entry .tpw-button,.tpw-city-search-form .tpw-button{width:100%}.tpw-city-footer{flex-direction:column}.tpw-city-public .tpw-brand strong{max-width:36vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpw-city-appearance{min-width:64px;padding:.5rem .65rem}.tpw-city-pagination{flex-wrap:wrap}.tpw-city-pagination span{width:100%;text-align:center}}
@media(max-width:374px){.tpw-city-public .tpw-brand-mark{display:none}.tpw-city-public .tpw-brand strong{max-width:38vw}.tpw-city-home-card{grid-template-columns:78px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.tpw-city-public *{scroll-behavior:auto!important;transition:none!important}}

/* City identity layer: editorial polish, built entirely from current Home tokens. */
.tpw-city-public{letter-spacing:-.005em}
.tpw-city-public .tpw-site-header{box-shadow:0 1px 0 color-mix(in srgb,var(--home-border) 72%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.tpw-city-public .tpw-header-inner{min-height:82px}.tpw-city-public .tpw-brand{gap:.8rem}.tpw-city-public .tpw-brand-mark{width:44px;height:44px;border-radius:14px;font-size:1.05rem;box-shadow:inset 0 -10px rgba(0,0,0,.1)}.tpw-city-public .tpw-brand strong{font-size:.98rem;letter-spacing:-.01em}.tpw-city-public .tpw-brand small{margin-top:2px;color:var(--home-muted);font-size:.67rem;letter-spacing:.11em;text-transform:uppercase}
.tpw-city-public .tpw-nav{gap:.25rem}.tpw-city-public .tpw-nav a{min-height:44px;padding:.65rem .9rem;border-radius:999px;text-decoration:none}.tpw-city-public .tpw-nav a:hover{background:var(--home-surface-alt)}.tpw-city-public .tpw-nav a[aria-current="page"]{background:var(--home-surface);box-shadow:inset 0 0 0 1px var(--home-border)}
.tpw-city-appearance{position:relative;padding-inline:1rem;transition:border-color .2s ease,background .2s ease}.tpw-city-appearance:hover{border-color:var(--home-accent);background:var(--home-surface-alt)}
.tpw-city-hero{min-height:min(760px,calc(100vh - 82px));display:grid;align-items:center;padding:clamp(4.5rem,8vw,8rem) 0;background:radial-gradient(circle at 78% 22%,color-mix(in srgb,var(--home-accent) 28%,transparent),transparent 26rem),radial-gradient(circle at 10% 95%,color-mix(in srgb,var(--home-accent) 10%,transparent),transparent 22rem),linear-gradient(145deg,var(--home-surface-alt),var(--home-page))}
.tpw-city-hero-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center;gap:clamp(2rem,7vw,7rem)}
.tpw-city-hero-copy{min-width:0}.tpw-city-hero h1{max-width:12ch;margin:.32rem 0 1rem;font-size:clamp(3.5rem,8vw,7.4rem);line-height:.88;letter-spacing:-.07em}.tpw-city-hero-copy>p:not(.tpw-kicker){max-width:53ch;font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.62}
.tpw-city-hero-facts{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.4rem 0 0}.tpw-city-hero-facts span{display:flex;align-items:baseline;gap:.38rem;padding:.55rem .75rem;border:1px solid var(--home-border);border-radius:999px;background:color-mix(in srgb,var(--home-surface) 78%,transparent);color:var(--home-text-secondary);font-size:.78rem}.tpw-city-hero-facts strong{color:var(--home-text);font-size:.82rem}
.tpw-city-search-entry{max-width:700px;margin-top:2rem;padding:1rem;border:1px solid var(--home-border);border-radius:20px;background:color-mix(in srgb,var(--home-surface) 86%,transparent);box-shadow:0 18px 50px rgba(0,0,0,.08);backdrop-filter:blur(12px)}.tpw-city-search-entry label{padding-inline:.3rem;font-size:.78rem;letter-spacing:.03em}.tpw-city-search-entry input,.tpw-city-search-form input{border-radius:14px}.tpw-city-search-entry .tpw-button,.tpw-city-search-form .tpw-button{border-radius:14px;box-shadow:0 8px 22px color-mix(in srgb,var(--home-accent) 25%,transparent)}
.tpw-city-landmark{position:relative;height:430px;align-self:end;overflow:hidden;border:1px solid color-mix(in srgb,var(--home-border) 75%,transparent);border-bottom:0;border-radius:220px 220px 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--home-surface) 48%,transparent),var(--home-surface-alt));box-shadow:0 -30px 80px color-mix(in srgb,var(--home-accent) 10%,transparent),inset 0 1px color-mix(in srgb,#fff 30%,transparent)}
.tpw-city-landmark:before{content:"";position:absolute;inset:10% 8% 0;background:repeating-linear-gradient(90deg,transparent 0 42px,color-mix(in srgb,var(--home-border) 80%,transparent) 43px 44px),repeating-linear-gradient(0deg,transparent 0 42px,color-mix(in srgb,var(--home-border) 75%,transparent) 43px 44px);mask-image:linear-gradient(to top,#000,transparent)}
.tpw-city-landmark:after{content:"";position:absolute;right:13%;top:10%;width:16px;height:16px;border-radius:50%;background:var(--home-accent);box-shadow:0 0 0 10px color-mix(in srgb,var(--home-accent) 15%,transparent),0 0 52px var(--home-accent)}
.tpw-city-landmark span{position:absolute;bottom:0;width:16%;border:1px solid color-mix(in srgb,var(--home-border) 88%,transparent);border-bottom:0;border-radius:5px 5px 0 0;background:color-mix(in srgb,var(--home-surface) 88%,transparent);box-shadow:inset 0 0 0 8px color-mix(in srgb,var(--home-surface-alt) 55%,transparent)}.tpw-city-landmark span:nth-child(1){left:7%;height:36%}.tpw-city-landmark span:nth-child(2){left:25%;height:58%}.tpw-city-landmark span:nth-child(3){left:44%;width:18%;height:78%}.tpw-city-landmark span:nth-child(4){left:65%;height:46%}.tpw-city-landmark span:nth-child(5){left:82%;width:11%;height:29%}
.tpw-city-public .tpw-section{padding-block:clamp(4.5rem,8vw,7rem)}.tpw-city-public .tpw-section-heading{align-items:end;margin-bottom:2rem}.tpw-city-public .tpw-section-heading h2{margin:.2rem 0 0;font-size:clamp(2rem,4vw,3.25rem);letter-spacing:-.045em}.tpw-city-public .tpw-section-heading p:not(.tpw-kicker){max-width:52ch;margin:.55rem 0 0;color:var(--home-text-secondary)}.tpw-city-public .tpw-section-heading>a{display:inline-flex;min-height:44px;align-items:center;gap:.35rem;font-weight:800;text-decoration:none}
.tpw-city-home-grid{gap:1.5rem}.tpw-city-home-card{position:relative;display:flex;padding:0;overflow:hidden;border-radius:22px;flex-direction:column;box-shadow:0 14px 40px rgba(0,0,0,.07);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.tpw-city-home-card:hover{border-color:color-mix(in srgb,var(--home-accent) 58%,var(--home-border));box-shadow:0 24px 60px rgba(0,0,0,.12);transform:translateY(-5px)}.tpw-city-home-art{aspect-ratio:16/10;border-radius:0}.tpw-city-home-card-body,.tpw-city-home-card>div{display:flex;min-width:0;min-height:220px;padding:1.35rem;flex:1;flex-direction:column}.tpw-city-home-card h3{margin:.25rem 0 .65rem;font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.12;letter-spacing:-.025em}.tpw-city-home-card p:not(.tpw-kicker){line-height:1.55}.tpw-city-card-link{gap:.32rem;margin-top:auto;text-decoration:none}.tpw-city-card-link span{transition:transform .18s ease}.tpw-city-card-link:hover span{transform:translateX(4px)}
.tpw-city-content-grid{gap:1.5rem}.tpw-city-public .tpw-content-card{overflow:hidden;border-radius:22px;box-shadow:0 14px 40px rgba(0,0,0,.055);transition:transform .22s ease,box-shadow .22s ease}.tpw-city-public .tpw-content-card:hover{box-shadow:0 22px 52px rgba(0,0,0,.1);transform:translateY(-4px)}.tpw-city-public .tpw-card-body{padding:1.3rem}.tpw-city-public .tpw-card-body h3{font-size:1.25rem;letter-spacing:-.02em}
.tpw-city-page-hero{padding-block:clamp(4.7rem,9vw,7.5rem);background:radial-gradient(circle at 85% 30%,color-mix(in srgb,var(--home-accent) 20%,transparent),transparent 20rem),linear-gradient(145deg,var(--home-surface-alt),var(--home-page))}.tpw-city-page-hero h1{max-width:18ch;margin:.3rem 0 .9rem;font-size:clamp(2.8rem,7vw,6rem);line-height:.95;letter-spacing:-.06em}.tpw-city-page-hero>div>p:not(.tpw-kicker){max-width:58ch;font-size:1.1rem;line-height:1.6}
.tpw-city-search-form{max-width:760px;padding:1rem;border:1px solid var(--home-border);border-radius:20px;background:color-mix(in srgb,var(--home-surface) 85%,transparent);box-shadow:0 18px 50px rgba(0,0,0,.07)}.tpw-city-search-form label{display:block;margin:0 .25rem .65rem}.tpw-city-search-form>div{display:flex;gap:.65rem}
.tpw-city-public .tpw-results{display:grid;max-width:960px;gap:.9rem}.tpw-city-public .tpw-result{padding:clamp(1.25rem,3vw,2rem);border-radius:18px}.tpw-city-public .tpw-result h2{margin:.35rem 0 .55rem;font-size:clamp(1.3rem,2.5vw,1.75rem)}.tpw-city-public .tpw-empty{padding:clamp(2.5rem,7vw,5rem);border-radius:22px;text-align:center}.tpw-city-public .tpw-empty h2{font-size:clamp(1.6rem,3vw,2.25rem)}.tpw-city-public .tpw-empty p{max-width:48ch;margin-inline:auto}
.tpw-city-pagination{margin-top:2.5rem}.tpw-city-pagination span{font-weight:750}.tpw-city-footer{padding-block:1rem}.tpw-city-footer strong{font-size:1.1rem}.tpw-city-footer p{margin:.35rem 0 0}
@media(max-width:1024px){.tpw-city-hero-layout{grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr);gap:2.5rem}.tpw-city-landmark{height:360px}.tpw-city-home-card{display:flex}.tpw-city-home-art{aspect-ratio:16/10}}
@media(max-width:760px){.tpw-city-hero{min-height:auto}.tpw-city-hero-layout{grid-template-columns:1fr}.tpw-city-landmark{display:none}.tpw-city-public .tpw-section-heading{align-items:flex-start;flex-direction:column;gap:.65rem}.tpw-city-public .tpw-section-heading>a{align-self:flex-start}}
@media(max-width:600px){.tpw-city-public .tpw-header-inner{min-height:72px}.tpw-city-public .tpw-brand-mark{width:38px;height:38px;border-radius:12px}.tpw-city-hero{padding-block:4.25rem}.tpw-city-hero h1{font-size:clamp(3.1rem,17vw,5.2rem)}.tpw-city-hero-facts{align-items:flex-start;flex-direction:column}.tpw-city-search-entry,.tpw-city-search-form{padding:.8rem;border-radius:17px}.tpw-city-search-form>div{flex-direction:column}.tpw-city-public .tpw-section{padding-block:4rem}.tpw-city-home-card-body{min-height:200px}.tpw-city-page-hero{padding-block:4rem}.tpw-city-page-hero h1{font-size:clamp(2.7rem,13vw,4.4rem)}}
@media(max-width:374px){.tpw-city-public .tpw-header-inner{gap:.35rem}.tpw-city-header-actions{gap:.3rem}.tpw-city-public .tpw-menu-button,.tpw-city-appearance{min-width:0;padding-inline:.6rem;font-size:.75rem}.tpw-city-public .tpw-brand strong{max-width:31vw}.tpw-city-home-card{display:flex}.tpw-city-home-art{aspect-ratio:16/10}}
@media(prefers-reduced-motion:reduce){.tpw-city-home-card,.tpw-city-public .tpw-content-card,.tpw-city-card-link span{transition:none}.tpw-city-home-card:hover,.tpw-city-public .tpw-content-card:hover{transform:none}}
