:root{--ink:#263d32;--muted:#637066;--paper:#f7f7ef;--line:#d3d9c9;--ease-out:cubic-bezier(.23,1,.32,1);--ease-move:cubic-bezier(.77,0,.175,1);font-family:"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:#ecebe2;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit}a{text-decoration:none;color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #7b985a;outline-offset:4px}button:disabled{cursor:default;opacity:.5}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}#town{position:relative;width:100%;height:100%;height:100svh;isolation:isolate;overflow:hidden}#world{position:absolute;inset:0;z-index:-1;touch-action:none}#world canvas{display:block;width:100%;height:100%;outline:none}#loading{position:absolute;inset:0;background:#ecebe2;display:flex;justify-content:center;align-items:center;gap:18px;z-index:30;font-size:16px;transition:opacity 220ms var(--ease-out)}#loading.ready{opacity:0;pointer-events:none}.loading-ring{width:25px;height:25px;border:2px solid #c9d3bb;border-top-color:var(--ink);border-radius:50%;animation:turn 1s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}.topbar{display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;right:0;padding:25px 35px;gap:20px;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-size:28px;line-height:1;font-weight:500;letter-spacing:-.06em}.brand-mark{display:block;width:34px;height:34px;border:7px solid var(--ink);border-radius:50%}.brand-sub{display:block;font-size:9px;line-height:1.4;letter-spacing:.13em;margin-top:7px;font-weight:400}.topbar nav{display:flex;align-items:center;gap:26px}.topbar nav button{background:none;font-size:14px;padding:12px 0;white-space:nowrap}.topbar nav .contact-button{background:var(--ink);color:var(--paper);border-radius:24px;padding:13px 23px}.intro-copy{position:absolute;top:134px;left:36px;max-width:345px;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:500;line-height:1.6}.intro-copy h1{font-size:clamp(32px,3.6vw,51px);font-weight:400;line-height:1.22;letter-spacing:-.04em;margin-top:14px}.intro-description{font-size:14px;line-height:1.8;color:var(--muted);margin-top:16px;max-width:285px}.tour-button{pointer-events:auto;display:inline-flex;align-items:center;gap:9px;background:#f7f7efcc;border:1px solid #d3d9c9;border-radius:22px;padding:10px 17px;font-size:13px;margin-top:20px;backdrop-filter:blur(12px);transition:background 160ms ease}.play-symbol{font-size:18px;line-height:1}.tour-button[aria-pressed=true]{background:#263d32;color:#f7f7ef}.scene-meta{position:absolute;right:35px;top:123px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.weather-icon{font-size:23px;line-height:1;color:#aa7e36}.place-card{position:absolute;left:35px;bottom:150px;width:320px;padding:23px 24px 22px;background:#f8f9f0ec;border:1px solid #fff8;border-radius:16px;box-shadow:0 8px 40px #2033250d;backdrop-filter:blur(20px);transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out)}.place-topline{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.08em;color:var(--muted);gap:10px}.place-card h2{font-size:26px;font-weight:500;letter-spacing:-.035em;line-height:1.2;margin-top:14px}.place-location{font-size:12px;color:#6c7b5c;margin-top:9px;line-height:1.5}.place-description{font-size:14px;line-height:1.8;margin-top:15px;color:var(--muted)}.place-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.place-tags span{font-size:10px;padding:5px 8px;background:#e7edde;border-radius:4px;line-height:1.2}.place-cta{display:block;font-size:13px;font-weight:500;padding-top:16px;margin-top:17px;border-top:1px solid var(--line);line-height:1.6}.world-tools{position:absolute;right:35px;bottom:167px;display:flex;flex-direction:column;gap:3px;padding:7px;background:#f8f9f0e8;border:1px solid #fff8;border-radius:13px;backdrop-filter:blur(15px)}.world-tools button{height:35px;width:35px;border-radius:7px;background:none;font-size:23px;line-height:1;display:grid;place-items:center}.world-tools button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.world-tools button[aria-pressed=true]{background:#dce5cf}.tool-divider{height:1px;background:var(--line);margin:4px}.explore-bar{position:absolute;bottom:41px;left:35px;right:35px;background:#f8f9f0e8;border:1px solid #fff8;border-radius:14px;padding:12px 18px 13px;backdrop-filter:blur(20px);z-index:4}.explore-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:10px}.explore-heading>span{font-size:10px;letter-spacing:.08em;font-weight:500;color:var(--muted)}.browse-buttons{display:flex;align-items:center;gap:10px}.browse-buttons button{background:none;font-size:21px;width:25px;height:20px;line-height:.7}.browse-buttons span{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:32px;text-align:center}.places-nav{display:flex;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;gap:6px}.places-nav::-webkit-scrollbar{display:none}.places-nav button{flex:0 0 142px;scroll-snap-align:center}.places-nav button{display:flex;align-items:center;gap:9px;background:none;text-align:left;border:1px solid transparent;padding:10px 9px;border-radius:8px;min-width:0;transition:background 160ms ease,border-color 160ms ease}.places-nav button[aria-pressed=true]{background:#e2e8d7;border-color:#d5ddc8}.place-dot{width:21px;height:21px;border-radius:6px;background:var(--place-color,#b6c792);font-size:10px;display:grid;place-items:center;flex-shrink:0}.place-nav-name{font-size:12px;font-weight:500;letter-spacing:-.015em;line-height:1.4;display:block}.place-nav-category{display:block;font-size:9px;color:var(--muted);margin-top:2px;line-height:1.4}.town-footer{position:absolute;bottom:13px;left:36px;right:36px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#6a7866;letter-spacing:.035em;pointer-events:none}.concept-note{letter-spacing:.075em}#hover-label{position:absolute;padding:9px 13px;background:var(--ink);color:var(--paper);border-radius:6px;font-size:12px;pointer-events:none;z-index:8;white-space:nowrap;box-shadow:0 3px 18px #233b3222}.studio-dialog{border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);width:min(660px,calc(100vw - 36px));max-height:calc(100svh - 44px);padding:42px 45px;overflow:auto;box-shadow:0 20px 90px #20332544}.studio-dialog::backdrop{background:#20332555;backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:20px;top:15px;width:35px;height:35px;background:none;font-size:30px;font-weight:300;color:var(--muted)}.studio-dialog h2{font-size:36px;line-height:1.3;font-weight:400;letter-spacing:-.035em;margin-top:20px}.dialog-intro{font-size:15px;line-height:1.85;color:var(--muted);margin-top:21px}.studio-services{margin-top:30px;border-top:1px solid var(--line)}.studio-services article{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.studio-services article>span{font-size:11px;color:var(--muted);padding-top:5px}.studio-services h3{font-size:18px;font-weight:500}.studio-services p{font-size:14px;line-height:1.7;color:var(--muted);margin-top:7px}.rental-pricing{font-size:13px;margin-top:26px;line-height:1.8}.rental-pricing summary{cursor:pointer}.rental-pricing>div{padding-top:20px}.rental-pricing p{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-top:10px}.rental-pricing strong{font-weight:400}.rental-pricing p>span{white-space:nowrap}.rental-pricing small{font-size:11px;color:var(--muted)}.rental-pricing .pricing-note{display:block;font-size:12px;line-height:1.9;color:var(--muted);margin-top:20px}.dialog-cta{display:block;text-align:center;background:var(--ink);color:var(--paper);padding:15px 20px;border-radius:8px;font-size:14px;margin-top:28px}.contact-email{display:block;font-size:clamp(17px,3vw,26px);margin-top:40px;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}.contact-phone{display:block;font-size:23px;margin-top:22px}.contact-signature{font-size:16px;letter-spacing:-.03em;color:var(--muted);margin-top:45px}.noscript-message{position:fixed;inset:20%;padding:35px;z-index:100;background:var(--paper);font-size:18px;line-height:1.8}
@media(hover:hover) and (pointer:fine){.tour-button:hover{background:#e2e8d7}.world-tools button:hover{background:#e2e8d7}.places-nav button:hover{background:#ecf0e3}.place-cta:hover{color:#6c8759}.topbar nav button:not(.contact-button):hover{color:#789363}.contact-button:hover,.dialog-cta:hover{background:#3a5745}}
@media(max-width:1100px){.topbar{padding:22px 26px}.intro-copy{left:27px;top:122px;max-width:280px}.intro-copy h1{font-size:40px}.scene-meta{right:27px;top:116px}.place-card{left:26px;width:280px;bottom:154px;padding:21px}.world-tools{right:26px;bottom:170px}.explore-bar{left:26px;right:26px;padding:12px}.places-nav{gap:2px}.places-nav button{gap:6px;padding:9px 5px}.place-nav-name{font-size:11px}.place-dot{width:17px;height:20px}.town-footer{left:27px;right:27px;font-size:9px}}
@media(max-width:800px){.topbar nav{gap:18px}.topbar nav button{font-size:13px}.brand{font-size:25px}.brand-sub{font-size:8px}.brand-mark{width:30px;height:30px;border-width:6px}.intro-copy{top:112px}.intro-copy h1{font-size:34px}.intro-description{font-size:12px;max-width:240px}.scene-meta{display:none}.place-card{width:255px;padding:18px;bottom:150px}.place-card h2{font-size:23px}.place-description{font-size:13px}.place-cta{font-size:12px}.places-nav{display:flex;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;gap:5px}.places-nav::-webkit-scrollbar{display:none}.places-nav button{flex:0 0 135px;scroll-snap-align:center;padding:9px}.place-dot{width:20px}.place-nav-name{font-size:12px}.place-nav-category{font-size:10px}.town-footer .concept-note{display:none}.world-tools{bottom:160px}.studio-dialog{padding:35px 30px}.studio-dialog h2{font-size:30px}}
@media(max-width:560px){.topbar{padding:20px 18px;gap:10px}.brand{font-size:23px;gap:8px}.brand-sub{font-size:6.5px;letter-spacing:.1em}.brand-mark{width:28px;height:28px;border-width:6px}.topbar nav{gap:15px}.topbar nav #about-open{font-size:12px}.topbar nav .contact-button{display:none}.topbar nav #language{font-size:12px}.intro-copy{left:20px;top:99px;max-width:250px}.intro-copy .eyebrow{font-size:9px}.intro-copy h1{font-size:31px;margin-top:8px;line-height:1.18}.intro-description{font-size:12px;margin-top:10px;max-width:220px}.tour-button{margin-top:13px;padding:8px 13px;font-size:11px}.intro-copy{pointer-events:none}.place-card{left:18px;right:18px;bottom:132px;width:auto;padding:13px 16px;border-radius:13px;background:#f8f9f0eb}.place-topline{font-size:9px}.place-card h2{font-size:22px;margin-top:7px}.place-location{margin-top:4px;font-size:10px}.place-description{font-size:12px;line-height:1.65;margin-top:8px;max-width:100%}.place-tags{display:none}.place-cta{padding-top:9px;margin-top:10px;font-size:11px}.world-tools{right:18px;top:104px;bottom:auto;padding:4px;gap:1px}.world-tools button{height:29px;width:29px;font-size:20px}.world-tools button svg{width:16px;height:16px}.world-tools .tool-divider{margin:2px}.explore-bar{left:18px;right:18px;bottom:29px;padding:10px 11px 10px;border-radius:12px}.explore-heading{margin-bottom:6px}.explore-heading>span{font-size:9px}.places-nav button{flex-basis:126px;padding:8px 7px}.place-nav-name{font-size:11px}.place-nav-category{font-size:9px}.town-footer{bottom:9px;left:20px;right:20px;font-size:9px}.studio-dialog{padding:34px 24px;border-radius:15px;max-height:calc(100svh - 30px)}.studio-dialog h2{font-size:29px}.dialog-intro{font-size:14px}.studio-services h3{font-size:17px}.studio-services p{font-size:14px}.contact-phone{font-size:22px}.contact-email{font-size:19px}html[lang=en] .intro-copy h1{font-size:28px}html[lang=en] .intro-description{max-width:190px}html[lang=en] .place-description{font-size:12px}}
@media(max-height:740px) and (min-width:801px){.intro-copy{top:115px}.intro-copy h1{font-size:36px}.intro-description{margin-top:10px}.tour-button{margin-top:13px}.place-card{padding:18px 21px;width:285px;bottom:146px}.place-card h2{font-size:24px;margin-top:10px}.place-description{font-size:13px;margin-top:10px}.place-tags{margin-top:10px}.place-cta{padding-top:12px;margin-top:12px}}
@media(max-height:720px) and (max-width:560px){.intro-copy{top:87px}.intro-copy h1{font-size:26px}.intro-description{display:none}.tour-button{margin-top:10px}.place-description{display:none}.place-card{bottom:125px}.place-cta{margin-top:8px;padding-top:7px}.explore-bar{bottom:27px}}
@media(prefers-reduced-motion:reduce){.loading-ring{animation:none}.place-card{transition:opacity 160ms ease}*{scroll-behavior:auto!important}}
@media(max-width:560px){.topbar nav{gap:12px}.topbar nav .contact-button{display:block;padding:9px 12px;font-size:0}.topbar nav .contact-button:after{content:"联系";font-size:11px}html[lang=en] .topbar nav .contact-button:after{content:"Talk"}}
#loading[hidden]{display:none}
.night-mode .topbar,.night-mode .intro-copy{color:#eef1e3}.night-mode .brand-mark{border-color:#eef1e3}.night-mode .intro-description,.night-mode .scene-meta,.night-mode .town-footer{color:#d1dac4}.night-mode .topbar nav .contact-button{background:#e5eddb;color:#263d32}.night-mode .weather-icon{color:#e4ba81}.night-mode .tour-button{color:#263d32}.world-tools button[aria-pressed=true]{background:#dce5cf}
.topbar nav select{font:inherit;font-size:12px;color:inherit;border:0;background:transparent;padding:8px 1px;cursor:pointer;max-width:50px}.topbar nav select option{color:#263d32;background:#f7f7ef}.person-view{position:absolute;left:35px;top:128px;padding:20px 24px;display:flex;align-items:center;gap:30px;border-radius:14px;background:#f8f9f0ef;backdrop-filter:blur(15px);color:#263d32;z-index:5}.person-view[hidden]{display:none}.person-view p:first-child{font-size:10px;letter-spacing:.1em;color:#637066}.person-view h2{font-size:28px;font-weight:500;letter-spacing:-.03em;margin:8px 0}.person-view p:last-child{font-size:12px;color:#637066;line-height:1.6}.person-view button{padding:11px 15px;background:#263d32;color:#f5f6ed;border-radius:8px;font-size:12px;white-space:nowrap}.person-mode .intro-copy,.person-mode .place-card{display:none}#residents-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:26px}#residents-list button{padding:12px 10px;border:1px solid #d6ddcf;background:#e9efdf;border-radius:7px;text-align:left;font-size:13px;display:flex;align-items:center;gap:8px}#residents-list .resident-chip{width:18px;height:18px;border-radius:50%;display:inline-block;background:#b6cda8;font-size:9px;display:grid;place-items:center}
@media(max-width:560px){.topbar nav #about-open{font-size:11px}.topbar nav{gap:9px}.topbar nav select{font-size:11px;max-width:42px}.person-view{left:18px;right:63px;top:97px;padding:15px 17px;flex-direction:column;align-items:flex-start;gap:13px}.person-view h2{font-size:25px}.person-view button{font-size:11px;padding:9px 12px}#residents-list{grid-template-columns:repeat(2,1fr)}.world-tools{top:97px}}

@media(max-width:560px){html[lang=es] .topbar nav .contact-button:after{content:"Hablar"}html[lang=es] .topbar #about-open{font-size:0}html[lang=es] .topbar #about-open:after{content:"Servicios";font-size:12px}html[lang=es] .intro-copy h1{font-size:28px}html[lang=es] .intro-description{max-width:220px}.person-view{right:18px}}

.landmark-links{position:absolute;left:36px;top:352px;display:flex;gap:7px;flex-wrap:wrap;max-width:350px;z-index:3}.landmark-links button{background:#f6f8eedb;border:1px solid #d5ddcf;border-radius:18px;padding:7px 10px;font-size:11px;backdrop-filter:blur(12px)}.event-notice{position:absolute;right:35px;top:159px;max-width:210px;background:#263d32e6;color:#f5f6ed;padding:10px 15px;border:1px solid #c9dcc244;border-radius:9px;font-size:12px;line-height:1.6;backdrop-filter:blur(14px)}[hidden]{display:none!important}.event-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:26px 0 16px}.event-options button,.event-auto{border:1px solid #d1dcc8;border-radius:8px;background:#e7eddf;padding:15px 10px;font-size:14px}.event-auto{width:100%;background:none}.event-auto[aria-pressed=true]{background:#263d32;color:#f7f7ef}.creator-avatar{width:140px;height:140px;object-fit:cover;object-position:50% 16%;border-radius:50%;display:block;margin:0 0 24px}.portrait-dialog .contact-email{margin-top:24px}.person-mode .landmark-links{display:none}
@media(max-width:1100px){.landmark-links{left:27px;top:337px}.event-notice{right:27px}}
@media(max-width:800px){.landmark-links{top:298px;max-width:245px}.landmark-links button{font-size:10px;padding:6px 9px}.event-notice{top:310px;right:20px;max-width:160px;font-size:11px}}
@media(max-width:560px){.landmark-links{left:20px;top:261px;max-width:268px;gap:5px}.landmark-links button{font-size:9px;padding:6px 8px}.event-notice{top:359px;right:18px;max-width:160px}.person-view{right:64px}.creator-avatar{width:110px;height:110px}.event-options button{font-size:12px}}
@media(max-height:740px) and (min-width:801px){.landmark-links{top:303px}.place-card{bottom:143px}}
@media(max-height:720px) and (max-width:560px){.landmark-links{top:207px}.event-notice{top:344px}}

.overview .place-location,.overview .place-description,.overview .place-tags{display:none}.overview .place-card{padding-top:18px}.focused .intro-copy{display:none}.landmark-links{top:395px}.focused .landmark-links{top:126px}.place-card{z-index:2}.landmark-links{z-index:3}
@media(max-width:1100px){.landmark-links{top:386px}.focused .landmark-links{top:115px}}
@media(max-width:800px){.landmark-links{top:325px}.focused .landmark-links{top:112px}}
@media(max-width:560px){.landmark-links{top:304px}.focused .landmark-links{top:99px}.overview .place-card{padding-top:13px}.overview .place-card h2{font-size:20px}}
@media(max-height:740px) and (min-width:801px){.landmark-links{top:330px}.focused .landmark-links{top:115px}}
@media(max-height:720px) and (max-width:560px){.landmark-links{top:220px}.focused .landmark-links{top:87px}}

.creator-avatar{object-position:50% 33%}

.sky-credits{font-size:10px;line-height:1.7;margin-top:24px;color:var(--muted)}.sky-credits a{text-decoration:underline;text-underline-offset:3px}

.person-activity{font-size:12px;line-height:1.5;color:#607967;margin:6px 0}.night-mode .person-activity{color:#b8cbb9}

/* Keep the project action above a navigation bar whose height follows translated labels. */
.place-card{bottom:var(--card-bottom,150px);max-height:calc(100svh - var(--card-bottom,150px) - 100px);overflow:auto}
