/* Shared portfolio chrome; keep the island landscape and lighting untouched. */
.city-page.city-page{--ink:#262a30;--body-ink:#3f4854;--accent:#2459db;--text:#262a30;--muted:#59636f;--line:#dce3ef;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.city-page.city-page .city-header .city-brand strong,.city-page.city-page .welcome-card h1,.city-page.city-page .arrival-card h2,.city-page.city-page #info-panel h2,.city-page.city-page .section-heading h2{font-family:inherit;color:var(--ink);letter-spacing:-.035em}
.city-page.city-page .city-header .city-brand small,.city-page.city-page .welcome-copy,.city-page.city-page .welcome-meta,.city-page.city-page .arrival-card p,.city-page.city-page .arrival-card small{color:var(--body-ink)}
.city-page.city-page .city-header nav,.city-page.city-page .surface-pill,.city-page.city-page .location-pill,.city-page.city-page .control-help summary,.city-page.city-page .destination-panel{background:rgba(248,251,255,.88);border:1px solid rgba(209,221,245,.85);color:var(--ink);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.city-page.city-page .city-header nav button,.city-page.city-page .city-header nav a{color:var(--body-ink)}
.city-page.city-page .city-header nav .primary{background:#2459db!important;border-color:#2459db!important;color:white!important}
.city-page.city-page .welcome-card,.city-page.city-page .arrival-card{background:rgba(248,251,255,.93);border:1px solid #ffffff;box-shadow:0 16px 48px #1d345b20;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.city-page.city-page .welcome-eyebrow,.city-page.city-page .welcome-card h1,.city-page.city-page .arrival-card h2{color:var(--ink)}
.city-page.city-page .welcome-cta{background:#2459db;border:1px solid #2459db;color:white;min-height:44px}
.city-page.city-page .secondary-tour{background:rgba(255,255,255,.8);color:var(--ink);margin:8px 0 12px}
.city-page.city-page .building-label,.city-page.city-page .building-label.career-marker,.city-page.city-page .island-footnote{background:rgba(245,249,255,.9);color:var(--body-ink);border-color:#d1dff2}
.city-page.city-page .brand-symbol{border-color:#c5d6f5;color:var(--ink);background:#f5f8ff}
.city-page.city-page #info-panel{background:rgba(250,252,255,.97);border:1px solid #fff;color:var(--ink)}
.city-page.city-page #info-panel .panel-content{padding:24px 30px}
.city-page.city-page #work{padding:0}
.city-page.city-page #work .section-heading{margin-bottom:14px;align-items:center}
.city-page.city-page #work .section-heading h2{font-size:24px;margin:0;font-weight:650}
.city-page.city-page #work .work-layout{display:block}
.city-page.city-page #work .project-list{display:flex;gap:8px;overflow-x:auto;margin:0 0 22px;padding-bottom:5px;scrollbar-width:thin}
.city-page.city-page #work .project-list button{flex:0 0 auto;min-height:44px;padding:10px 13px;border-radius:999px;background:#f2f4f6;border:1px solid #dce5f4;font-size:12px;color:var(--body-ink)}
.city-page.city-page #work .project-list button[aria-selected=true]{background:#e5edff;border-color:#9bb9f3;color:var(--ink)}
.city-page.city-page #work .project-list small,.city-page.city-page #work .project-num{display:none}
.city-page.city-page #project-panel{display:block}
.city-page.city-page #project-title{font-size:28px;letter-spacing:-.035em;margin:6px 0 10px;color:var(--ink)}
.city-page.city-page #project-context{font-size:11px;color:var(--body-ink);margin:0}
.city-page.city-page #project-description{font-size:15px;line-height:1.65;margin:0 0 16px;color:var(--body-ink)}
.city-page.city-page #work .outcome{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;padding:14px 17px;margin:0 0 16px;background:#eef1f5;border:1px solid #d1dffc;border-radius:14px}
.city-page.city-page #work .outcome strong{font-size:23px;color:var(--ink)}
.city-page.city-page #work .outcome span{font-size:12px;color:var(--body-ink)}
.project-contribution h4{font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 6px;color:var(--body-ink)}
.city-page.city-page #project-contribution{font-size:14px;line-height:1.65;margin:0 0 14px;color:var(--body-ink)}
.city-page.city-page #project-details{margin-top:20px;border-top:1px solid #dce5f3;padding-top:14px}
.city-page.city-page #project-details summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--ink);min-height:44px;padding:10px 0}
.city-page.city-page #project-details .diagram{margin-top:20px;background:#f2f6fe;border-radius:14px;padding:20px}
.highlight-tour{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px solid #cbdcfb;background:#f0f2f5;border-radius:12px;padding:10px 12px;margin:0 0 16px;font-size:11px;color:var(--ink)}
.highlight-tour[hidden]{display:none}.highlight-tour>div{display:flex;gap:8px;flex-wrap:wrap}.highlight-tour button{border:1px solid #c7d8f6;border-radius:8px;background:#fff;color:var(--ink);min-height:36px;padding:8px 10px;font:inherit;font-size:12px;cursor:pointer}.highlight-tour button:disabled{opacity:.45;cursor:default}
.city-page.city-page .destination.visited{border-left:3px solid #2459db;background:#eef1f5}.city-page.city-page .destination.visited strong::after{content:' · Explored';font-size:10px;color:var(--ink);font-weight:500}
@media(max-width:700px){.city-page.city-page #info-panel .panel-content{padding:20px 18px}.city-page.city-page #work .section-heading h2{font-size:21px}.city-page.city-page #project-title{font-size:25px}.city-page.city-page .city-header nav{gap:3px}.city-page.city-page .city-header nav button,.city-page.city-page .city-header nav a{padding:9px;font-size:11px}.highlight-tour button{min-height:44px}.city-page.city-page #work .project-list{margin-bottom:16px}.city-page.city-page #work .outcome strong{font-size:21px}}

.city-page.city-page #work:has(#highlight-tour:not([hidden])) #project-count{visibility:hidden}
.city-page.city-page .project-chat-link{display:inline-flex;align-items:center;justify-content:center;background:#2459db;color:white;border:1px solid #2459db;border-radius:999px;padding:10px 17px;min-height:44px;margin:0 0 18px;font-size:13px;font-weight:600;text-decoration:none}
#mobile-map-open,#arrival-toggle{display:none}
.city-page.city-page #city-fallback{padding:24px;overflow:auto;text-align:center;background:linear-gradient(150deg,#edf5ff,#dbf0f6);align-content:start;justify-content:start}
.city-page.city-page #city-fallback h2{font-family:inherit;color:var(--ink);font-size:32px;letter-spacing:-.035em;margin:12px 0}.city-page #city-fallback>p{color:var(--body-ink);max-width:660px;margin:10px auto;font-size:14px;line-height:1.6}.map-eyebrow{letter-spacing:.15em;font-size:11px!important}
.fallback-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;max-width:850px;width:100%;margin:26px auto;padding:30px;background:linear-gradient(130deg,#e9f3e9,#f8fbef);border:10px solid #bcdfeb;border-radius:64px 110px 74px 130px;box-shadow:0 15px 38px #547b9a15;position:relative}
.map-stop{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:100px;padding:14px;border:1px solid #b8cdef;border-radius:14px;background:#ffffffeb;color:var(--ink);box-shadow:0 6px 12px #2447750a;cursor:pointer;position:relative}.map-stop:hover,.map-stop:focus-visible{outline:2px solid #2459db;outline-offset:3px;background:white}.map-stop-number{font-size:11px;color:var(--ink)}.map-stop strong{font-size:14px}.map-stop small{font-size:11px;line-height:1.5;color:var(--body-ink)}.map-stop:last-child{grid-column:2}.fallback-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.fallback-actions button,.fallback-actions a{font:inherit;font-size:13px;min-height:44px;padding:12px 17px;border:1px solid #bacef1;background:white;border-radius:999px;color:var(--ink);cursor:pointer}
.city-page.island-2d #city-stage{overflow:auto}.city-page.island-2d #city-canvas,.city-page.island-2d #welcome-card,.city-page.island-2d .fps-pad,.city-page.island-2d .view-controls,.city-page.island-2d #arrival-card,.city-page.island-2d #mobile-map-open,.city-page.island-2d #walking-status,.city-page.island-2d #island-footnote,.city-page.island-2d .location-pill,.city-page.island-2d #interior-tools{display:none!important}
@media(max-width:700px){
 .city-page.city-page #city-fallback{padding:18px 14px}.city-page.city-page #city-fallback h2{font-size:26px}.fallback-map{grid-template-columns:repeat(2,minmax(0,1fr));padding:20px 12px;gap:14px;border-width:7px;border-radius:40px 65px 40px 55px;margin:18px auto}.map-stop:last-child{grid-column:1/-1}.map-stop{padding:12px 8px;min-height:88px}
 .city-page.city-page #mobile-map-open{display:block;position:absolute;top:105px;left:16px;z-index:8;min-height:44px;padding:10px 15px;border-radius:999px;font-size:12px}
 .city-page.city-page #arrival-card{position:absolute;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));width:auto;max-width:none;max-height:42dvh;overflow:auto;padding:14px 18px;border-radius:22px;z-index:12}
 .city-page.city-page #arrival-card #arrival-toggle{display:block;float:right;min-height:44px;padding:8px 10px;border:0;border-radius:10px;background:#f0f2f5;color:var(--ink);font-size:12px}.city-page.city-page #arrival-card h2{font-size:21px;margin:6px 0}.city-page.city-page #arrival-card p{display:block;font-size:13px;line-height:1.5}.city-page.city-page #arrival-card small{font-size:10px}.city-page.city-page .arrival-actions{display:flex;flex-direction:row;gap:8px}.city-page.city-page .arrival-actions button{min-height:44px;flex:1;padding:10px!important}
 .city-page.city-page #arrival-card.is-collapsed #arrival-body{display:none}.city-page.city-page #arrival-card.is-collapsed{left:auto;width:auto;overflow:hidden;padding:4px 8px}.city-page.city-page:has(#arrival-card:not([hidden]):not(.is-collapsed)) .fps-pad{visibility:hidden}
 .city-page.city-page .destination-panel{top:auto;bottom:12px;left:12px;right:12px;width:auto;max-width:none;max-height:65dvh;border-radius:22px;padding:20px;z-index:20;overflow:auto}.city-page.city-page .mobile-travel{display:flex!important;gap:8px;flex-wrap:wrap}.city-page.city-page .mobile-travel select{min-height:44px;max-width:100%;flex:1}.city-page.city-page .mobile-travel button{min-height:44px}
}
.city-page.city-page #city-fallback{padding-top:112px;touch-action:pan-y}.city-page.city-page #city-fallback>*{flex-shrink:0}
@media(max-width:700px){.city-page.city-page #city-fallback{padding-top:calc(100px + env(safe-area-inset-top))}.city-page.city-page .city-header nav [data-start-highlights]{display:none}}
/* Use the same readable panel rhythm as the conversation pages. */
.city-page.city-page #info-panel{font-size:15px;line-height:1.7}.city-page.city-page #info-panel summary{min-height:44px;padding-block:11px;font-size:14px;line-height:1.5}.city-page.city-page #info-panel p,.city-page.city-page #info-panel li{font-size:15px;line-height:1.7;overflow-wrap:anywhere}.city-page.city-page #info-panel h3{font-size:20px;line-height:1.35;letter-spacing:-.3px}.city-page.city-page #info-panel .dates{font-size:12px}.city-page.city-page .project-chat-link{font-size:14px;line-height:1.5;padding:10px 18px}.city-page.city-page .highlight-tour button{min-height:44px}.city-page.city-page #project-context{font-size:12px}.city-page.city-page #project-title{font-size:26px;line-height:1.3}
@media(max-width:700px){.city-page.city-page #info-panel .panel-content{padding:20px}.city-page.city-page #project-title{font-size:23px}.city-page.city-page #info-panel h3{font-size:18px}.city-page.city-page #info-panel .role-card header{flex-wrap:wrap;gap:8px}}
@media(max-width:700px){.city-page.city-page .destination-panel .mobile-travel{position:static;inset:auto;margin:16px 0;flex:0 0 auto;width:100%}}
.city-page.city-page #info-panel p,.city-page.city-page #info-panel li{color:var(--body-ink)}.city-page.city-page #info-panel small,.city-page.city-page #info-panel .dates,.city-page.city-page #info-panel dt{color:var(--muted)}.city-page.city-page .destination-panel h2,.city-page.city-page .destination-panel h3{font-family:inherit;color:var(--ink)}
.city-page.city-page #info-panel #project-title{font-size:26px;line-height:1.3}.city-page.city-page #info-panel #project-context{font-size:12px;line-height:1.6;color:var(--muted)}.city-page.city-page .destination-panel h1{font-family:inherit;color:var(--ink)}
@media(max-width:700px){.city-page.city-page #info-panel #project-title{font-size:23px}}
.city-page.city-page #project-evidence-link{display:inline-flex;align-items:center;min-height:44px;margin:0 0 18px 12px;padding:10px 0;font-size:14px;line-height:1.5;text-decoration:underline;text-underline-offset:4px;color:var(--body-ink)}.city-page.city-page #close-panel{min-width:44px;min-height:44px}
@media(max-width:480px){.city-page.city-page #project-evidence-link{display:flex;width:fit-content;margin-left:0;margin-top:-10px}}
