.featured-card{min-width:0;height:100%}.featured-card-link{border:1px solid var(--border);background:var(--card);height:100%;color:var(--card-foreground);box-shadow:0 4px 20px -12px color-mix(in oklab,var(--foreground)12%,transparent);flex-direction:column;padding:16px;transition:transform .25s ease-out,border-color .25s ease-out,box-shadow .25s ease-out;display:flex}.featured-card-link:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.featured-card-cover{isolation:isolate;aspect-ratio:2.4;background:var(--muted);flex-shrink:0;position:relative;overflow:hidden}.featured-card-image{object-fit:cover;transition:transform .5s cubic-bezier(.2,.65,.3,1)}.featured-card-body{flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:18px 0 0;display:flex}.featured-card-category{z-index:1;padding:5px 10px;border:1px solid color-mix(in oklab,var(--foreground)8%,transparent);background:color-mix(in oklab,var(--card)94%,transparent);max-width:calc(100% - 24px);color:var(--card-foreground);box-shadow:0 2px 8px color-mix(in oklab,var(--foreground)6%,transparent);align-items:center;gap:6px;font-size:.75rem;font-weight:500;line-height:1.4;display:inline-flex;position:absolute;top:12px}.featured-card-category:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:8px;left:12px}.featured-card-category:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:8px;left:12px}.featured-card-category:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:8px;left:12px}.featured-card-category:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:8px;right:12px}.featured-card-category:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:8px;right:12px}.featured-card-category:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:8px;right:12px}.featured-card-category>span{flex-shrink:0}.featured-card-title{-webkit-line-clamp:3;letter-spacing:-.015em;text-wrap:balance;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:0;font-size:max(1.125rem,min(1.6vw,1.375rem));font-weight:600;line-height:1.5;display:-webkit-box;overflow:hidden}.featured-card-description{-webkit-line-clamp:2;color:var(--muted-foreground);overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:10px;font-size:.875rem;line-height:1.8;display:-webkit-box;overflow:hidden}.featured-card-footer{align-items:center;gap:12px;width:100%;margin-top:auto;padding-top:24px;display:flex}.featured-card-meta{color:var(--muted-foreground);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:.75rem;line-height:1.5;display:flex}.featured-card-meta time,.featured-card-read-time{white-space:nowrap}.featured-card-read-time{align-items:center;gap:5px;display:inline-flex}.featured-card-arrow{margin-left:auto}.featured-card-art{background:radial-gradient(ellipse at 65% 20%,color-mix(in oklab,var(--ring)12%,transparent),transparent 65%),var(--muted);place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.featured-card-art-halo{aspect-ratio:1;border:1px solid color-mix(in oklab,var(--foreground)5%,transparent);width:70%;box-shadow:0 0 0 24px color-mix(in oklab,var(--foreground)2%,transparent),0 0 0 50px color-mix(in oklab,var(--foreground)1.5%,transparent);border-radius:50%;position:absolute}.featured-card-paper{border:1px solid color-mix(in oklab,var(--foreground)10%,transparent);background:var(--card);width:31%;height:73%;box-shadow:0 12px 28px -12px color-mix(in oklab,var(--foreground)15%,transparent);border-radius:14px;position:absolute}.featured-card-paper-back{opacity:.55;transform:translate(-35%,7%)rotate(-15deg)}.featured-card-paper-middle{opacity:.75;transform:translate(37%,2%)rotate(14deg)}.featured-card-paper-front{flex-direction:column;justify-content:center;align-items:flex-start;gap:8%;padding:5%;display:flex;transform:rotate(-5deg)}.featured-card-paper-icon{color:var(--muted-foreground);margin-bottom:3%}.featured-card-paper-line{background:color-mix(in oklab,var(--foreground)9%,transparent);border-radius:999px;flex-shrink:0;width:100%;height:5px}.featured-card-paper-line:last-child{width:60%}@media (hover:hover) and (pointer:fine){.featured-card-link:hover{border-color:color-mix(in oklab,var(--foreground)18%,transparent);box-shadow:0 12px 32px -18px color-mix(in oklab,var(--foreground)18%,transparent);transform:translateY(-3px)}.featured-card-link:hover .featured-card-image{transform:scale(1.025)}.featured-card-link:hover .featured-card-arrow{background:var(--primary);color:var(--primary-foreground)}}@media (max-width:767px){.featured-card-link{padding:14px}.featured-card-body{padding-top:16px}.featured-card-cover{aspect-ratio:2}}@media (prefers-reduced-motion:reduce){.featured-card-link,.featured-card-image,.featured-card-arrow{transition:none}.featured-card-link:hover,.featured-card-link:hover .featured-card-image{transform:none}}
.city-hero{--city-travel:135svh;isolation:isolate;height:calc(100svh - var(--qv-header-height) + var(--city-travel));position:relative}.city-hero-viewport{--city-intro:1;top:var(--qv-header-height);height:calc(100svh - var(--qv-header-height));background:var(--background);position:-webkit-sticky;position:sticky;overflow:hidden}.city-hero-atmosphere{background:radial-gradient(ellipse at 60% 56%,color-mix(in srgb,var(--primary)4%,transparent),transparent 65%);pointer-events:none;position:absolute;top:12%;bottom:4%;left:28%;right:0}.city-hero-copy{z-index:2;will-change:transform;width:42%;text-shadow:0 2px 20px var(--background);isolation:isolate;position:absolute;top:25%;left:7%}.city-hero-copy:before{content:"";z-index:-1;background:radial-gradient(ellipse,var(--background)25%,transparent 72%);opacity:calc(.2 + var(--city-intro)*.7);pointer-events:none;position:absolute;top:-40px;bottom:-50px;left:-110px;right:-110px}.city-hero:not([data-reveal]) .city-hero-copy{visibility:hidden}.city-hero-copy [data-city-copy]{will-change:transform;width:max-content;max-width:100%}.city-hero-copy h1>span,.city-hero-description>span{display:block}body:has(.city-hero) [data-bottom-fade]{transition:opacity .22s,background .3s}body:has(.city-hero[data-pinned=true]) [data-bottom-fade]{opacity:0}.city-hero-copy h1{letter-spacing:-.035em;font-size:max(38px,min(4.2vw,64px));font-weight:600;line-height:1.35}.city-hero-punctuation{width:.5em;display:inline-block}.city-hero-description{color:var(--muted-foreground);margin-top:19px;font-size:14px;line-height:1.9}.city-hero-description>.city-hero-typewriter{grid-template-columns:minmax(0,1fr);margin-top:4px;display:grid}.city-hero-typewriter>span{grid-area:1/1;min-width:0}.city-hero-phrase-sizer{visibility:hidden;white-space:nowrap}.city-hero-phrase-sizer:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.city-hero-phrase-sizer:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.city-hero-phrase-sizer:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.city-hero-phrase-sizer:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.city-hero-phrase-sizer:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.city-hero-phrase-sizer:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.city-hero-phrase{white-space:nowrap;overflow:hidden}.city-hero-phrase-content{vertical-align:top;left:calc(var(--city-intro)*50%);transform:translateX(calc(var(--city-intro)*-50%));display:inline-block;position:relative}.city-hero-actions{text-shadow:none;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:12px;margin-top:30px;display:grid}.city-hero-art,.city-hero-model,.city-canvas,.city-fallback{position:absolute;top:0;bottom:0;left:0;right:0}.city-canvas canvas{opacity:0;transition:opacity .65s;display:block}.city-canvas[data-state=ready] canvas{opacity:1}.city-fallback{opacity:calc(.9*(1 - var(--city-intro)));background:url(/images/lujiazui-fallback.svg) 50%/contain no-repeat;top:4%;bottom:12%;left:32%;right:0}.dark .city-fallback{filter:invert(.88);opacity:calc(.7*(1 - var(--city-intro)))}.city-hero-model .city-fallback-intro{background-image:url(/images/lujiazui-intro.svg);background-position:bottom;background-size:auto var(--city-front-height,100%);opacity:calc(.9*var(--city-intro));top:0;bottom:0;left:0;right:0}.dark .city-fallback-intro{opacity:calc(.7*var(--city-intro))}.city-hero-model:has(.city-canvas[data-state=ready]) .city-fallback{opacity:0;transition:opacity .5s}.city-hero-location{color:var(--muted-foreground);pointer-events:none;opacity:calc(1 - var(--city-intro));font-size:12px;line-height:1.6;position:absolute;bottom:17%;right:11%}.city-hero-location small{opacity:.7;font-size:10px;display:block}.city-hero-footer{z-index:3;bottom:max(48px,env(safe-area-inset-bottom));color:var(--muted-foreground);text-shadow:0 1px 8px var(--background);justify-content:space-between;align-items:center;display:flex;position:absolute;left:7%;right:7%}#featured{scroll-margin-top:calc(var(--qv-header-height) + 24px)}@media (min-width:1600px){.city-hero-copy{left:max(7%,50vw - 720px)}.city-fallback{left:36%;right:0}}@media (max-width:1023px){.city-hero-copy{width:48%;left:5%}.city-fallback{top:10%;bottom:12%;left:31%;right:0%}.city-hero-copy h1{font-size:max(34px,min(4.5vw,48px))}.city-hero-description{max-width:300px;font-size:13px}}@media (max-width:700px){.city-hero{--city-travel:100svh}.city-hero-copy{width:86%;top:7%;left:7%}.city-hero-copy h1{font-size:max(32px,min(9vw,52px))}.city-hero-description{max-width:none;margin-top:14px;font-size:12px;line-height:1.9}.city-hero-actions{gap:6px;margin-top:20px}.city-fallback{top:48%;bottom:12%;left:-7%;right:-7%}.city-hero-location{font-size:10px;bottom:11%;right:14%}.city-hero-location small{display:none}.city-hero-footer{left:7%;right:7%}.city-hero-scroll{font-size:11px}}@media (max-height:680px) and (min-width:701px){.city-hero-copy{top:14%}.city-hero-description{margin-top:12px}.city-hero-actions{margin-top:20px}}.city-hero[data-reduced-motion=true]{height:auto}.city-hero[data-reduced-motion=true] .city-hero-viewport{min-height:560px;position:relative;top:auto}@media (max-height:600px),(prefers-reduced-motion:reduce){.city-hero{height:auto}.city-hero-viewport{min-height:560px;position:relative;top:auto}}@media (prefers-reduced-motion:reduce){.city-canvas canvas,.city-fallback{transition:none}}
