:root {  color-scheme: light;  --purple-950: #2a113f;  --purple-800: #4b236d;  --purple-650: #713e9a;  --purple-450: #a66fc2;  --lavender-100: #f5effa;  --lavender-200: #ede3f5;  --paper: #fdfbfd;  --ink: #241a2d;  --muted: #675b70;  --line: #e9dff0;  --white: #fff;  --accent: #e6ca94;  --gradient: linear-gradient(112deg, #2a113f 0%, #64328f 53%, #ac70c8 100%);  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;  font-synthesis: none;  -webkit-text-size-adjust: 100%;  text-size-adjust: 100%;}*, *::before, *::after { box-sizing: border-box; }html { scroll-behavior: auto; }body { margin: 0; min-width: 0; background: var(--paper); color: var(--ink); line-height: 1.65; }img { display: block; max-width: 100%; height: auto; }a { color: var(--purple-800); text-underline-offset: .19em; }a:hover { color: var(--purple-650); }a:focus-visible, summary:focus-visible { outline: 3px solid #d994ef; outline-offset: 4px; }h1, h2, h3, p, ul, figure { margin-top: 0; }h1, h2, h3 { line-height: 1.2; letter-spacing: -.025em; }p, li { overflow-wrap: break-word; }.skip-link { position: absolute; z-index: 100; top: -100px; left: 16px; padding: 10px 14px; background: var(--white); }.skip-link:focus { top: 12px; }.site-header { position: relative; z-index: 50; background: var(--purple-950); border-bottom: 1px solid #ffffff2d; }.header-inner { width: min(100% - 48px, 1220px); min-height: 76px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; }.brand { color: var(--white); font-size: clamp(1.16rem, 2vw, 1.47rem); font-weight: 750; letter-spacing: -.045em; text-decoration: none; white-space: nowrap; }.brand:hover { color: var(--white); }.header-actions { display: flex; align-items: center; gap: 22px; }.booking-link { color: var(--white); font-size: .87rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--accent); padding: 6px 0; }.booking-link:hover { color: var(--accent); }.menu { position: relative; }.menu summary { list-style: none; cursor: pointer; color: var(--white); display: flex; align-items: center; gap: 10px; font-size: .87rem; font-weight: 700; min-height: 44px; padding: 4px; }.menu summary::-webkit-details-marker { display: none; }.hamburger { display: grid; gap: 5px; width: 23px; }.hamburger span { display: block; width: 23px; height: 2px; background: var(--white); border-radius: 3px; }.menu[open] .hamburger span:nth-child(2) { background: var(--accent); }.menu-panel { position: absolute; right: 0; top: 100%; z-index: 2; width: min(370px, calc(100vw - 32px)); padding: 18px; display: grid; gap: 2px; background: #32184b; color: var(--white); box-shadow: 0 18px 45px #21102e4d; border: 1px solid #ffffff2d; border-radius: 12px; }.menu-title { padding: 7px 12px 12px; color: #e1c0f2; font-size: .73rem; letter-spacing: .15em; font-weight: 700; text-transform: uppercase; }.menu-panel a { display: block; padding: 10px 12px; border-radius: 6px; color: var(--white); text-decoration: none; font-size: .94rem; }.menu-panel a:hover, .menu-panel a:focus-visible { background: #ffffff1f; color: var(--white); }.hero { position: relative; padding-bottom: 70px; background: var(--lavender-100); }.hero-image { width: 100%; height: clamp(300px, 32vw, 455px); overflow: hidden; background: #d8cbe3; }.hero-image img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 25%; }.hero-panel { position: relative; z-index: 1; width: min(100% - 48px, 1160px); min-height: 182px; margin: -68px auto 0; padding: clamp(26px, 4vw, 44px) clamp(26px, 4.2vw, 52px); display: flex; align-items: center; justify-content: space-between; gap: 32px; background: var(--gradient); border-radius: 4px 26px 4px 26px; box-shadow: 0 25px 48px #2a113f30; color: var(--white); }.hero-copy { max-width: 590px; }.hero-copy h1 { margin-bottom: 11px; color: var(--white); font-size: clamp(2rem, 4.1vw, 3.55rem); font-weight: 760; }.hero-copy p { margin: 0; color: #f4e8fa; font-size: clamp(.99rem, 1.3vw, 1.12rem); }.hero-side { flex: 0 0 auto; display: grid; justify-items: start; gap: 13px; }.review-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; color: var(--white); font-size: .82rem; }.review-line strong { font-size: 1.4rem; line-height: 1; }.primary-cta { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 49px; padding: 11px 18px; border-radius: 6px; background: var(--white); color: var(--purple-950); font-weight: 750; line-height: 1.3; font-size: .85rem; text-decoration: none; box-shadow: 0 9px 22px #1c0b2b30; }.primary-cta:hover { background: #f7eaff; color: var(--purple-950); }.primary-cta span { font-size: 1.1rem; }.section { width: min(100% - 48px, 1160px); margin: 0 auto; padding: clamp(56px, 7vw, 96px) 0; }.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 38px; margin-bottom: 28px; }.section-heading h2 { margin-bottom: 14px; color: var(--purple-950); font-size: clamp(1.72rem, 2.8vw, 2.45rem); }.section-heading p { margin-bottom: 0; max-width: 750px; color: var(--muted); }.section-rule { flex: 0 0 90px; width: 90px; height: 2px; margin-bottom: 14px; background: var(--purple-450); }.schedule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }.schedule-card { min-width: 0; padding: 19px 19px 18px; background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--purple-650); border-radius: 5px 5px 16px 16px; box-shadow: 0 10px 27px #2a113f0b; }.swipe-hint { display: none; margin: 0 0 10px; color: var(--purple-650); font-size: .75rem; font-weight: 700; }.table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .84rem; line-height: 1.4; }th { background: var(--purple-950); color: var(--white); font-weight: 650; text-align: left; vertical-align: bottom; padding: 14px 12px; overflow-wrap: anywhere; }th:first-child { border-radius: 5px 0 0 0; }th:last-child { border-radius: 0 5px 0 0; }td { padding: 11px 12px; border-bottom: 1px solid #efe9f2; font-variant-numeric: tabular-nums; }tbody tr:nth-child(even) { background: #faf6fc; }tbody tr:last-child td { border-bottom: 0; }th:last-child, td:last-child { text-align: right; }.wide-band { background: var(--gradient); color: var(--white); }.wide-inner { width: min(100% - 48px, 1160px); margin: auto; padding: clamp(54px, 7vw, 88px) 0; }.transport-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .86fr); align-items: center; gap: clamp(30px, 7vw, 96px); }.transport-copy h2 { color: var(--white); font-size: clamp(1.7rem, 2.7vw, 2.5rem); margin-bottom: 22px; }.transport-copy p { max-width: 650px; margin-bottom: 17px; color: #f5eafb; }.transport-copy p:last-child { margin-bottom: 0; }.transport-copy a { color: var(--white); text-decoration-color: var(--accent); }.map-box { padding: 10px; background: #ffffff20; border: 1px solid #ffffff75; border-radius: 12px; box-shadow: 0 18px 35px #1e09232e; }.map-box a { display: block; }.map-box img { width: 100%; border-radius: 5px; background: #e9e1ed; }.editorial { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr); align-items: center; gap: clamp(36px, 7vw, 110px); border-bottom: 1px solid var(--line); }.editorial-reverse { grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); }.editorial-reverse .editorial-photo { grid-column: 1; grid-row: 1; }.editorial-reverse .editorial-copy { grid-column: 2; grid-row: 1; }.editorial-copy { min-width: 0; }.editorial-copy h1, .editorial-copy h2 { color: var(--purple-950); font-size: clamp(1.85rem, 3vw, 2.75rem); margin-bottom: 25px; }.chapter-link { color: inherit; text-decoration: underline; text-decoration-color: var(--purple-450); text-decoration-thickness: 2px; text-underline-offset: .2em; }.editorial-copy p { color: var(--muted); }.editorial-copy ul, .chapter-copy ul { padding-left: 1.2em; margin: 24px 0 0; }.editorial-copy li, .chapter-copy li { padding-left: .28em; margin-bottom: 12px; }.editorial-copy li::marker, .chapter-copy li::marker { color: var(--purple-650); }.editorial-photo { min-width: 0; margin: 0; padding: 11px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 45px #2a113f13; }.editorial-photo img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 11px; }.getting-there-band .editorial { border-bottom: 0; }.getting-there-band .editorial-copy h2 { color: var(--white); }.getting-there-band .editorial-copy p { color: #f5eafb; }.getting-there-band .editorial-copy a { color: var(--white); text-decoration-color: var(--accent); }.getting-there-band .editorial-copy li::marker { color: var(--accent); }.getting-there-band .map-box { margin-top: 1.5rem; }.getting-there-band .editorial-photo img { aspect-ratio: auto; height: auto; object-fit: contain; }.light-band { background: var(--lavender-100); color: var(--ink); }.light-band .section-heading h2 { color: var(--purple-950); }.faq-section { display: grid; grid-template-columns: minmax(210px, .38fr) minmax(0, 1fr); gap: clamp(32px, 7vw, 100px); }.faq-intro h2 { position: sticky; top: 30px; color: var(--purple-950); font-size: clamp(1.85rem, 3vw, 2.7rem); }.faq-list { min-width: 0; }.faq-list details { border-bottom: 1px solid var(--line); }.faq-list details:first-child { border-top: 1px solid var(--line); }.faq-list summary { position: relative; cursor: pointer; list-style: none; padding: 22px 40px 22px 0; font-weight: 710; line-height: 1.45; color: var(--purple-950); }.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary::after { content: "+"; position: absolute; right: 3px; top: 18px; color: var(--purple-650); font-size: 1.5rem; font-weight: 400; }.faq-list details[open] summary::after { content: "−"; }.faq-list details > div { padding: 0 22px 23px 0; color: var(--muted); }.faq-list details > div p:last-child, .faq-list details > div ul:last-child { margin-bottom: 0; }.faq-list ul { padding-left: 1.25em; }.faq-list li { margin-bottom: 9px; }.closing-band { background: linear-gradient(108deg, #f5f5f6 0%, #d9dce1 52%, #afb5be 100%); color: #2b2330; }.closing-inner { width: min(100% - 48px, 920px); margin: auto; padding: 62px 0; text-align: center; }.closing-inner h2 { font-size: clamp(1.75rem, 3vw, 2.55rem); }.closing-inner p { margin-bottom: 0; color: #443e48; }.last-updated { width: min(100% - 48px, 1160px); margin: 0 auto; padding: 18px 0 56px; color: var(--muted); font-size: .82rem; }.last-updated p { margin: 0; }.breadcrumbs { width: min(100% - 48px, 1160px); margin: 28px auto 0; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: .83rem; }.article-page { padding-top: 38px; }.article-chapter { display: grid; grid-template-columns: minmax(0, 1.13fr) minmax(250px, .87fr); align-items: start; gap: clamp(32px, 6vw, 92px); padding: 28px 0 74px; margin-bottom: 42px; border-bottom: 1px solid var(--line); }.article-chapter:last-child { margin-bottom: 0; border-bottom: 0; }.chapter-reverse { grid-template-columns: minmax(250px, .87fr) minmax(0, 1.13fr); }.chapter-reverse .chapter-photo { grid-column: 1; grid-row: 1; }.chapter-reverse .chapter-copy { grid-column: 2; grid-row: 1; }.chapter-copy h1, .chapter-copy h2 { color: var(--purple-950); font-size: clamp(1.8rem, 3vw, 2.8rem); margin-bottom: 23px; }.chapter-copy p { color: var(--muted); }.chapter-photo { margin: 0; min-width: 0; padding: 10px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 45px #2a113f13; }.chapter-photo img { width: 100%; border-radius: 10px; }.site-footer { background: linear-gradient(108deg, #351331 0%, #65233e 52%, #91384f 100%); color: #f2e7ec; }.footer-inner { width: min(100% - 48px, 1160px); margin: 0 auto; }.footer-top { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 45px; padding: 55px 0; }.footer-brand { font-size: 1.65rem; font-weight: 760; color: var(--white); letter-spacing: -.04em; }.footer-links { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 22px; font-size: .86rem; }.footer-links span { flex: 0 0 100%; color: #f0c2cc; font-size: .74rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }.site-footer a { color: #f8eaf0; }.site-footer a:hover { color: var(--white); }.footer-bottom { min-height: 73px; padding: 20px 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid #ffffff26; font-size: .79rem; }.footer-bottom > a { white-space: nowrap; }.deferred { content-visibility: auto; contain-intrinsic-size: auto 700px; }@media (max-width: 900px) {  .hero-panel { align-items: start; }  .hero-side { max-width: 260px; }  .schedule-grid { grid-template-columns: minmax(0, 1fr); }  .transport-layout { grid-template-columns: minmax(0, 1fr); }  .map-box { max-width: 620px; }  .faq-section { grid-template-columns: minmax(0, 1fr); gap: 14px; }  .faq-intro h2 { position: static; }}@media (max-width: 650px) {  .swipe-hint { display: block; }  .header-inner { width: min(100% - 32px, 1220px); min-height: 66px; }  .header-actions { gap: 15px; }  .booking-link { font-size: .81rem; }  .menu-label { display: none; }  .hero { padding-bottom: 45px; }  .hero-image { height: clamp(260px, 76vw, 360px); }  .hero-image img { object-position: center 46%; }  .hero-panel { width: calc(100% - 28px); padding: 25px 22px 26px; margin-top: -32px; display: block; border-radius: 3px 18px 3px 18px; }  .hero-copy h1 { font-size: clamp(1.85rem, 8.7vw, 2.8rem); }  .hero-side { max-width: none; margin-top: 24px; }  .primary-cta { width: 100%; justify-content: space-between; }  .section, .wide-inner, .breadcrumbs, .footer-inner, .last-updated { width: calc(100% - 36px); }  .section { padding: 56px 0; }  .wide-inner { padding: 55px 0; }  .section-heading { margin-bottom: 22px; }  .section-rule { display: none; }  .schedule-card { padding: 13px; }  table { min-width: 465px; font-size: .81rem; }  th, td { padding: 11px 9px; }  .editorial, .editorial-reverse, .article-chapter, .chapter-reverse { display: flex; flex-direction: column; gap: 28px; }  .editorial-photo, .chapter-photo { width: 100%; }  .editorial-photo img { max-height: 440px; }  .article-chapter { padding: 22px 0 54px; margin-bottom: 18px; }  .footer-top { grid-template-columns: 1fr; gap: 27px; padding: 43px 0; }  .footer-bottom { display: grid; justify-content: start; }}@media (max-width: 380px) {  .brand { font-size: 1.09rem; }  .header-actions { gap: 10px; }  .booking-link { font-size: .76rem; }  .hero-panel { width: calc(100% - 22px); }}