/* Shared public-site foundation. Editorial and activity layouts use the same mineral palette.
   Operational map descendants keep their explicit dark token scope and local controls. */
html:is([data-experience],[data-design="light-alpine-v3"])[data-theme] {
  --font:"Inter","Noto Sans JP",sans-serif; --font-display:var(--font); --font-ui:var(--font);
  --bg:var(--experience-stage); --surface:var(--experience-focal); --surface-1:var(--experience-surface-1); --surface-2:var(--experience-surface-2); --surface-3:var(--experience-surface-3);
  --snow:var(--experience-stage-ink); --ink:var(--experience-stage-ink); --text:var(--ink); --text-dim:var(--experience-stage-secondary); --muted:var(--experience-muted);
  --accent:var(--experience-action); --accent-text:var(--experience-link-on-dark); --accent-deep:var(--experience-action); --accent-ink:var(--experience-action-ink);
  --hairline:var(--experience-line); --hairline-strong:var(--experience-line-strong); --glass:var(--experience-stage); --max:1280px; --gutter:clamp(20px,5vw,64px);
  --reading-ink:var(--snow); --reading-secondary:var(--text-dim); --reading-accent:var(--accent-text);
}
html:is([data-experience],[data-design="light-alpine-v3"]) body { background:var(--bg); color:var(--ink); -webkit-font-smoothing:antialiased; }
html:is([data-experience],[data-design="light-alpine-v3"]) body::before,html:is([data-experience],[data-design="light-alpine-v3"]) body::after { display:none; }
html:is([data-experience],[data-design="light-alpine-v3"]) :is(.bc-header,.gp-site-header) { background:var(--bg); border-bottom:1px solid var(--hairline); }
html:is([data-experience],[data-design="light-alpine-v3"]) :is(.bc-header__bar,.gp-site-header__bar) { max-width:1280px; min-height:76px; padding-inline:var(--gutter); }
html:is([data-experience],[data-design="light-alpine-v3"]) :is(.bc-brand,.gp-site-brand) { font-size:1.2rem; letter-spacing:-.04em; font-weight:700; }
html:is([data-experience],[data-design="light-alpine-v3"]) :is(.bc-footer,.gp-site-footer) { background:var(--bg); }
html:is([data-experience],[data-design="light-alpine-v3"]) .bc-footer__brand { font-family:inherit; }
@media(max-width:600px) { html:is([data-experience],[data-design="light-alpine-v3"]) :is(.bc-header__bar,.gp-site-header__bar) { min-height:64px; padding-inline:18px; } }

html:is([data-experience],[data-design="light-alpine-v3"]) body { font-family:"Inter","Noto Sans JP",sans-serif; font-weight:400; }
html[lang="zh-Hant"]:is([data-experience],[data-design="light-alpine-v3"]) { --font:"Noto Sans TC","PingFang TC",sans-serif; --font-ui:var(--font); }
html[lang="zh-Hant"]:is([data-experience],[data-design="light-alpine-v3"]) body { font-family:var(--font); }
html:is([data-experience],[data-design="light-alpine-v3"]) :is(button,input,select,textarea) { font-family:inherit; }
html[data-experience="map-shell"] :is(.r3d-sitebar,.resort-guide) { font-family:inherit; }
html:is([data-experience],[data-design="light-alpine-v3"]) .bc-safety__cta { color:var(--ink); }
/* Preserve the ATES semantic colour while giving it a readable substrate in both themes. */
html:is([data-experience],[data-design="light-alpine-v3"]) .bc-stat--ates .bc-stat__v { background:#1c2630; padding:.12em .4em; border-radius:4px; }
.sw-experience { font-size:1rem; line-height:1.7; color:var(--snow); }
.sw-experience *, .sw-experience *::before, .sw-experience *::after { box-sizing:border-box; }
.sw-experience :is(h1,h2,h3,h4) { color:inherit; font-family:inherit; text-wrap:balance; letter-spacing:-.035em; }
.sw-experience h1 { font-size:clamp(2.1rem,4.3vw,3.5rem); line-height:1.18; font-weight:750; }
.sw-experience h2 { font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.3; font-weight:700; }
.sw-experience h3 { font-size:1.25rem; line-height:1.45; font-weight:700; }
html[lang="zh-Hant"] .sw-experience :is(h1,h2) { font-family:var(--font-ui); line-height:1.3; letter-spacing:-.035em; }
html[lang="ja"] .sw-experience h1 { line-height:1.35; }
.sw-experience p { line-height:1.8; }
.sw-experience a { text-underline-offset:.2em; }
.sw-experience :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--experience-action); outline-offset:4px; }
.sw-experience :is(button,summary) { cursor:pointer; }
.sw-experience :is(button,input,select,textarea) { font-size:1rem; }
.sw-experience :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { min-height:48px; }
.sw-experience :is(input[type="checkbox"],input[type="radio"]) { accent-color:var(--experience-action); width:1.15rem; height:1.15rem; flex-shrink:0; }
.sw-experience :is(.gp-event-btn,.gp-discovery-cta,.bc-btn--primary) { background:var(--experience-action); color:var(--experience-action-ink); border-color:var(--experience-action); min-height:48px; font-weight:650; text-decoration:none; }
.sw-experience :is(.gp-event-btn,.gp-discovery-cta,.bc-btn--primary):hover { background:var(--experience-action-hover); border-color:var(--experience-action-hover); }
.sw-experience [hidden] { display:none !important; }
.sw-experience [id] { scroll-margin-top:100px; }
@media(prefers-reduced-motion:reduce) { html:has(.sw-experience) { scroll-behavior:auto; } .sw-experience *, .sw-experience *::before,.sw-experience *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
/* People pages: real activities come before optional portfolio material. */
.sw-experience.gp-profile, .sw-experience.gp-directory { max-width:1160px; padding:clamp(1.25rem,4vw,3rem); }
.sw-experience .gp-hero { padding:1rem 0 2rem; margin-bottom:0; border:0; }
.sw-experience .gp-hero h1 { margin:0 0 .5rem; }
.sw-experience .gp-profile-intro { max-width:65ch; color:var(--text-dim); margin-top:.5rem; }
.sw-experience .gp-profile-events { background:var(--experience-focal); color:var(--experience-focal-ink); padding:clamp(1.25rem,3vw,2.5rem); border-radius:0; border-block:1px solid var(--hairline-strong); margin:1rem 0 3rem; }
.sw-experience .gp-profile-events h2 { margin:0 0 1rem; }
.sw-experience .gp-profile-events a { color:var(--experience-link-on-light); }
.sw-experience .gp-event-mini-list { list-style:none; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:1.5rem; }
.sw-experience .gp-event-mini-list li { min-width:0; overflow-wrap:anywhere; display:grid; grid-template-columns:minmax(0,1fr); gap:.65rem; padding:0 0 1.5rem; border-bottom:1px solid var(--experience-control-line-light); }
.sw-experience .gp-event-mini-list li>a { font-size:clamp(1.25rem,2.2vw,1.75rem); font-weight:700; line-height:1.4; text-decoration:none; }
.sw-experience .gp-event-mini-list .gp-event-mini-list__date { white-space:normal; overflow-wrap:anywhere; font-size:.95rem; color:var(--experience-focal-secondary); }
.sw-experience .gp-product-showcase:has(.gp-product-credentials:only-child) { display:block; }
.sw-experience .gp-product-credentials { max-width:780px; }
.sw-experience .gp-sec { padding-block:1.5rem; }
.sw-experience .gp-private-search { margin:2rem 0; border-block:1px solid var(--hairline-strong); padding-block:1rem; }
.sw-experience .gp-private-search>summary { min-height:48px; font-size:1.2rem; font-weight:650; }
.sw-experience .gp-activity-invite { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem 2rem; background:var(--experience-focal); color:var(--experience-focal-ink); padding:clamp(1.25rem,3vw,2rem); border-radius:0; border-left:3px solid var(--accent); margin:1.5rem 0 2.5rem; }
.sw-experience .gp-activity-invite p { margin:0; }
.sw-experience .gp-activity-invite a { display:inline-flex; align-items:center; padding:.75rem 1.25rem; border-radius:8px; background:var(--experience-action); color:var(--experience-action-ink); text-decoration:none; font-weight:650; }
.sw-experience.gp-directory .gp-guide-intro { margin-block:2rem; }
@media(max-width:600px) { .sw-experience.gp-profile,.sw-experience.gp-directory { padding:1.25rem; } .sw-experience .gp-activity-invite a { width:100%; justify-content:center; } }

html[data-experience][data-theme="dark"] { color-scheme:dark; }
html[data-experience][data-theme="light"] { color-scheme:light; }
