:root{--color-canvas:#fff;--color-surface:#f7f7f7;--color-surface-dim:#f0f0f0;--color-ink:#222;--color-ink-secondary:#6a6a6a;--color-ink-muted:#717171;--color-ink-light:#b0b0b0;--color-border:#ddd;--color-border-light:#ebebeb;--color-primary:#ff385c;--color-primary-hover:#e0314f;--color-primary-soft:#ff385c1f;--color-on-primary:#fff;--gradient-hero:linear-gradient(180deg, #0000000d 0%, #0000008c 100%);--font-sans:"Circular", "SF Pro Display", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--page-x:clamp(20px, 4vw, 48px);--content-max:1280px;--prose-max:720px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-card:0 0 0 1px #0000000a, 0 2px 6px #0000000a, 0 4px 12px #0000000f;--shadow-card-hover:0 2px 4px #00000014, 0 8px 24px #00000014;--shadow-ambient:0 1px 2px #00000014, 0 4px 12px #0000000d}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font:16px/1.6 var(--font-sans);color:var(--color-ink);background:var(--color-canvas);-webkit-font-smoothing:antialiased;margin:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.site{flex-direction:column;min-height:100svh;display:flex}.container{width:min(var(--content-max), 100%);padding-inline:var(--page-x);margin-inline:auto}.container--narrow{width:min(var(--prose-max), 100%)}.site-header{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border-light);background:#ffffffeb;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:24px;min-height:72px;display:flex}.site-brand{flex-direction:column;gap:2px;display:flex}.site-brand__name{color:var(--color-ink);letter-spacing:-.01em;font-size:1.125rem;font-weight:600}.site-brand__tagline{color:var(--color-ink-muted);font-size:.8125rem}.site-nav{flex-wrap:wrap;gap:8px;display:flex}.site-nav__link{border-radius:var(--radius-pill);color:var(--color-ink);padding:8px 16px;font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.site-nav__link:hover{background:var(--color-surface)}.site-nav__link.is-active{background:var(--color-primary);color:var(--color-on-primary)}.site-footer{border-top:1px solid var(--color-border-light);background:var(--color-canvas);margin-top:auto;padding:32px 0 40px}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.site-footer__entity{gap:6px;display:grid}.site-footer__entity-name{color:var(--color-ink);font-size:.875rem;font-weight:600}.site-footer__icp{color:var(--color-ink-muted);font-size:.75rem}.site-footer__icp a:hover{color:var(--color-primary)}.site-footer__copy{color:var(--color-ink-muted);margin-top:8px;font-size:.8125rem}.site-footer__legal{gap:20px;display:flex}.site-footer__legal a{color:var(--color-ink-muted);font-size:.875rem;transition:color .15s}.site-footer__legal a:hover{color:var(--color-primary)}.hero{color:#fff;align-items:flex-end;min-height:520px;display:flex;position:relative;overflow:hidden}.hero__slide{opacity:0;pointer-events:none;transition:opacity .6s;position:absolute;inset:0}.hero__slide--active{opacity:1;pointer-events:auto}.hero__preload{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.hero__bg{background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.hero__inner{z-index:1;box-sizing:border-box;padding-block:64px 56px;position:relative}.hero__copy{width:100%;min-width:0;max-width:36rem}.hero__grid{align-items:end;gap:32px;min-width:0;display:grid}.hero__title{letter-spacing:-.02em;overflow-wrap:anywhere;max-width:100%;margin:0 0 16px;font-size:clamp(1.75rem,4vw,3rem);font-weight:600;line-height:1.15}.hero__subtitle{color:#ffffffeb;overflow-wrap:anywhere;max-width:100%;margin:0;font-size:clamp(1rem,2.2vw,1.125rem);line-height:1.6}.hero__cta{color:#fff;font:inherit;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;margin-top:20px;padding:10px 18px;font-size:.9375rem;font-weight:600}.hero__cta:hover{background:#fff3}.hero__dots{z-index:2;gap:8px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.hero__dot{cursor:pointer;background:#ffffff73;border:0;border-radius:999px;width:8px;height:8px;padding:0}.hero__dot--active{background:#fff;width:10px;height:10px}.qr-block{background:var(--color-canvas);border-radius:var(--radius-lg);box-shadow:var(--shadow-ambient);color:var(--color-ink);text-align:center;width:min(100%,280px);padding:24px}.qr-block__img{border-radius:var(--radius-sm);border:1px dashed var(--color-border);background:var(--color-surface-dim);object-fit:contain;width:160px;height:160px;margin:0 auto 16px}.qr-block--sm .qr-block__img{width:140px;height:140px}.qr-block__title{margin:0 0 6px;font-size:.875rem;font-weight:600}.qr-block__hint{color:var(--color-ink-muted);margin:0;font-size:.75rem;line-height:1.5}.qr-block--platforms{text-align:left;width:min(100%,320px)}.qr-block__lead{color:var(--color-ink-secondary);margin:0 0 12px;font-size:.8125rem;line-height:1.6}.qr-block--platforms .qr-block__hint{color:var(--color-ink);font-size:.8125rem;font-weight:500}.contact-booking__hint{color:var(--color-ink);margin:0;font-size:.9375rem;font-weight:500}.page-hero{background:var(--color-surface);border-bottom:1px solid var(--color-border-light);padding:48px 0 32px}.page-hero__title{letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(1.75rem,3vw,2rem);font-weight:600}.page-hero__lead{color:var(--color-ink-secondary);max-width:42rem;margin:0;font-size:1.125rem}.section{padding:48px 0}.section__head{margin-bottom:28px}.section__title{letter-spacing:-.01em;margin:0 0 8px;font-size:1.375rem;font-weight:600}.section__desc{color:var(--color-ink-secondary);margin:0;font-size:.9375rem}.section__foot{margin:24px 0 0;font-size:.9375rem}.inline-link{color:var(--color-primary);text-underline-offset:2px;font-weight:500;text-decoration:underline}.inline-link:hover{color:var(--color-primary-hover)}.highlight-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.highlight-card{border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-canvas);padding:24px;transition:box-shadow .15s,transform .15s}.highlight-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.highlight-card__label{border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary);letter-spacing:.02em;margin-bottom:16px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-block}.highlight-card__title{margin:0 0 8px;font-size:1rem;font-weight:600}.highlight-card__text{color:var(--color-ink-secondary);margin:0;font-size:.875rem}.listing-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;display:grid}.listing-card{border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-canvas);box-shadow:var(--shadow-card);color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s;display:block;overflow:hidden}.listing-card--link{cursor:pointer}.listing-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.listing-card__media{aspect-ratio:4/3;background:var(--color-surface-dim);object-fit:cover;width:100%}.listing-card__body{padding:16px 18px 20px}.listing-card__meta{color:var(--color-ink-muted);margin-bottom:6px;font-size:.75rem}.listing-card__title{margin:0 0 8px;font-size:1.0625rem;font-weight:600}.listing-card__price{font-variant-numeric:tabular-nums;margin:0 0 8px;font-size:1rem;font-weight:600}.listing-card__summary{color:var(--color-ink-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.875rem;display:-webkit-box;overflow:hidden}.rooms-state{text-align:center;justify-items:center;gap:16px;padding:32px 0 48px;display:grid}.rooms-state--error{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);padding:40px 24px}.rooms-state__title{margin:0;font-size:1.125rem;font-weight:600}.rooms-state__message{max-width:36rem;color:var(--color-ink-secondary);margin:0}.rooms-state__hint{color:var(--color-ink-muted);margin:0;font-size:.9375rem}.rooms-state__skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;width:100%;display:grid}.rooms-skeleton-card{aspect-ratio:4/3;border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-surface-dim) 0%, var(--color-surface) 50%, var(--color-surface-dim) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite rooms-skeleton-shimmer}@keyframes rooms-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.button{border-radius:var(--radius-pill);min-height:44px;font:inherit;cursor:pointer;border:0;justify-content:center;align-items:center;padding:0 20px;font-weight:600;display:inline-flex}.button--primary{color:var(--color-on-primary);background:var(--color-primary)}.button--primary:hover{background:var(--color-primary-hover)}.prose-section{gap:32px;display:grid}.prose-block{gap:24px;display:grid}.prose-block__image{aspect-ratio:16/9;border-radius:var(--radius-md);object-fit:cover;width:100%}.prose-block__heading{margin:0 0 12px;font-size:1.125rem;font-weight:600}.prose-block__text{color:var(--color-ink-secondary);margin:0;font-size:1rem;line-height:1.7}.contact-layout{gap:32px;display:grid}.contact-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.contact-item{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-canvas);padding:18px 20px}.contact-item__label{margin-bottom:4px;font-size:.875rem;font-weight:600}.contact-item__value{color:var(--color-ink-secondary);font-size:1rem}.contact-item__value a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.contact-item__value a:hover{color:var(--color-primary-hover)}.contact-booking{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border-light);padding:28px}.contact-booking__title{margin:0 0 8px;font-size:1.125rem;font-weight:600}.contact-booking__lead{color:var(--color-ink-secondary);margin:0 0 20px;font-size:.9375rem}.legal-layout{background:var(--color-canvas);min-height:100svh}.legal-layout__main{padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.legal-doc{padding:24px 0 48px}.legal-doc__meta{color:var(--color-ink-muted);margin-bottom:24px;font-size:.8125rem}.legal-doc h1{margin:0 0 8px;font-size:clamp(1.75rem,3vw,2rem);font-weight:600}.legal-doc h2{margin:32px 0 12px;font-size:1.125rem;font-weight:600}.legal-doc p{color:var(--color-ink-secondary);margin:0 0 16px}.legal-doc a{color:var(--color-brand);text-decoration:none}.legal-doc a:hover{text-decoration:underline}.legal-doc table{border-collapse:collapse;width:100%;margin:16px 0 24px;font-size:.875rem}.legal-doc th,.legal-doc td{border:1px solid var(--color-border-light);text-align:left;padding:10px 12px}.legal-doc th{background:var(--color-surface);color:var(--color-ink);font-weight:600}.legal-doc td{color:var(--color-ink-secondary)}.mock-index{padding:48px var(--page-x);max-width:640px;margin:0 auto}.mock-index h1{margin-bottom:8px;font-size:1.5rem}.mock-index p{color:var(--color-ink-secondary);margin-bottom:24px}.mock-index ul{padding-left:1.25rem;line-height:2}.mock-index a{color:var(--color-primary);font-weight:500}.mock-index a:hover{color:var(--color-primary-hover)}@media (width>=720px){.hero__grid{grid-template-columns:1fr auto}.prose-block{grid-template-columns:1fr 1fr;align-items:center}.prose-block--reverse .prose-block__image{order:2}.contact-layout{grid-template-columns:1fr 320px;align-items:start}}@media (width<=719px){.site-header__inner{flex-direction:column;align-items:flex-start;padding-block:16px}.hero{min-height:480px}.hero__inner{padding-block:48px 40px}.hero__grid{gap:24px}.qr-block{width:min(100%,280px);margin-inline:auto}.site-footer__inner{flex-direction:column}}@media (width>=1280px){.listing-grid{grid-template-columns:repeat(3,1fr)}}#root{min-height:100svh}.site-main{flex-direction:column;flex:1;display:flex}.section--surface{background:var(--color-surface);border-block:1px solid var(--color-border-light)}.contact-booking .qr-block{margin-inline:auto}.listing-card__amenities{color:var(--color-ink-secondary);margin:0 0 8px;font-size:.8125rem}.image-swiper{border-radius:var(--radius-md);background:var(--color-surface-dim);position:relative;overflow:hidden}.image-swiper--empty{min-height:280px}.image-swiper__track{height:100%;transition:transform .35s;display:flex}.image-swiper__slide{object-fit:cover;flex:0 0 100%;width:100%;height:100%}.image-swiper__dots{justify-content:center;gap:8px;display:flex;position:absolute;bottom:16px;left:0;right:0}.image-swiper__dot{background:#ffffff8c;border:0;border-radius:999px;width:8px;height:8px;padding:0}.image-swiper__dot--active{background:#fff}.image-swiper__nav{color:#fff;cursor:pointer;background:#00000059;border:0;border-radius:999px;width:36px;height:36px;font-size:1.4rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.image-swiper__nav--prev{left:12px}.image-swiper__nav--next{right:12px}.room-detail-back{color:var(--color-ink-secondary);margin-bottom:16px;text-decoration:none;display:inline-block}.room-detail-layout{align-items:start;gap:32px;display:grid}.room-detail-layout__gallery,.room-detail-layout__summary{min-width:0}.room-detail__title{margin:8px 0 12px;font-size:clamp(1.8rem,3vw,2.4rem)}.room-detail__description{color:var(--color-ink-secondary);margin:16px 0 0;line-height:1.7}.room-detail__section-title{margin:28px 0 12px;font-size:1.1rem}.room-detail__amenity-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.room-detail__amenity-item{align-items:flex-start;gap:12px;display:flex}.room-detail__amenity-icon{object-fit:cover;border-radius:8px;flex-shrink:0;width:40px;height:40px}.room-detail__amenity-icon--placeholder{background:var(--color-surface-dim);display:inline-block}.room-detail__amenity-item p{color:var(--color-ink-secondary);margin:4px 0 0;font-size:.92rem}.room-detail__cta{border-top:1px solid var(--color-border-light);gap:16px;margin-top:32px;padding-top:24px;display:grid}.room-detail__cta-button{width:fit-content;max-width:100%}@media (width>=960px){.room-detail-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px}.image-swiper{max-height:min(72vh,640px)}}
