/* Final layer: island-first narrative, full image compositions and visible motion. */
.ss-page .sea-surface{inset:-50px;background-size:400% auto;will-change:transform}
.ss-page .sea-surface.is-flowing{animation:sea-swell 7s ease-in-out infinite alternate}
@keyframes sea-swell{from{transform:translate3d(-22px,-14px,0) scale(1.025)}to{transform:translate3d(22px,16px,0) scale(1.085)}}
.ss-page .sea-current-art{opacity:.45;animation:drawn-sea-drift 6s ease-in-out infinite alternate}
@keyframes drawn-sea-drift{to{transform:translate3d(24px,-15px,0)}}
.sea-filter{position:absolute;pointer-events:none}
.ss-page .sea-prologue.is-motion-paused .sea-surface,.ss-page .sea-prologue.is-motion-paused .sea-current-art{animation-play-state:paused}
.ss-page .architecture{margin-top:120px}
.ss-page .intro-postcard img{height:auto;aspect-ratio:1200/2134;object-fit:contain}
.ss-page .room-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1400px;margin:auto;align-items:start}
.ss-page .room-portrait{min-width:0;margin:0}
.ss-page .room-portrait>button{display:block;position:relative;padding:0;width:100%;border:0;background:#e8e7df}
.ss-page .room-portrait img{width:100%;height:auto;aspect-ratio:1200/2134;object-fit:contain}
.room-expand{position:absolute;bottom:18px;right:18px;display:grid;place-items:center;width:44px;height:44px;border:1px solid #f4f1ea99;background:var(--deep);color:var(--ivory);font-size:22px}
.room-portrait figcaption{padding:20px 0;border-bottom:1px solid var(--line)}
.room-portrait figcaption>span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.room-portrait figcaption>strong{display:block;font:400 31px/1.15 var(--serif);margin-top:10px}
.ss-page .room-gallery-note{max-width:1400px;margin:22px auto 0;font-size:11px;color:var(--green)}
.room-gallery-note>span{display:none}
.ss-page .community-explorer{grid-template-columns:minmax(0,.75fr) minmax(0,1fr);max-width:1250px;margin:auto;background:var(--ivory)}
.ss-page .community-stage{height:auto;min-height:0;aspect-ratio:1200/2134;align-self:center;background:var(--ivory)}
.ss-page .community-stage>img{width:100%;height:100%;object-fit:contain}
.ss-page .community-panel{padding:40px 50px}
.ss-page .day-card img{height:auto;aspect-ratio:1200/2134;object-fit:contain}
.ss-page .day-card-two img{aspect-ratio:1200/678}
.ss-page .island-guide-panel>figure{min-height:0;align-self:center;aspect-ratio:1.33}
.ss-page .island-guide-panel>figure>img{object-fit:cover;object-position:center;background:#e8e7df}
.ss-page .table-photo{min-height:0;align-self:center;aspect-ratio:3546/2633}
.ss-page .table-photo>img{object-fit:contain}
.ss-page .connection-chart{aspect-ratio:600/520;max-height:none;width:100%;padding-bottom:32px}
.ss-page .connection-chart>.connection-map{overflow:visible;height:auto;aspect-ratio:600/520}
.map-waves{fill:none;stroke:var(--blue);stroke-width:.85;opacity:.44;animation:map-wave-flow 5s ease-in-out infinite alternate}
@keyframes map-wave-flow{to{transform:translateX(13px) translateY(-3px)}}
.map-island{fill:var(--deep);stroke:none}
.map-coast-shadow{fill:none;stroke:var(--blue);stroke-width:15;stroke-opacity:.13;stroke-linejoin:round}
.map-outline{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linejoin:round;stroke-dasharray:1000;stroke-dashoffset:0}
.connection-chart.is-in-view .map-outline{animation:coast-arrive 2.8s ease both}
@keyframes coast-arrive{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
.map-island-name{fill:var(--gold);font:400 27px var(--serif);letter-spacing:5px}
.map-island-subtitle{fill:var(--ivory);font:400 7px var(--sans);letter-spacing:2px}
.ss-page .connection-route{stroke-dasharray:3 7;opacity:.3}
.ss-page .connection-route.is-active{animation:connection-flow 3s linear infinite;opacity:.95}
@keyframes connection-flow{to{stroke-dashoffset:-40}}
.map-traveller{display:none;fill:var(--gold)}.map-traveller.is-active{display:block}
.ss-page .node-water{left:12%;top:34%}.ss-page .node-power{left:81%;top:76%}.ss-page .node-airport{left:80%;top:14%}
.ss-page .connection-node{font-size:12px!important;gap:9px}
.ss-page .connection-node>span:first-child{width:54px;height:54px}
.ss-page .connection-node[aria-selected=true]>span:first-child{animation:connection-pulse 2.4s ease-out infinite}
@keyframes connection-pulse{0%{box-shadow:0 0 0 0 #d9bc7245}100%{box-shadow:0 0 0 15px #d9bc7200}}
.ss-page .chart-sea-label{left:0;bottom:33px;font-size:23px;max-width:none}.ss-page .chart-instruction{right:0;bottom:33px;font-size:8px}
.map-motion{position:absolute;bottom:-22px;left:0;min-height:44px;background:transparent;border:0;border-bottom:1px solid #7fa9af66;padding:0;font-size:11px!important}
.connection-chart.is-motion-paused .map-waves,.connection-chart.is-motion-paused .connection-route,.connection-chart.is-motion-paused .connection-node>span:first-child,.connection-chart.is-motion-paused .map-outline{animation-play-state:paused}
.ss-page .connections{--focus-ring:var(--gold)}
@media(max-width:1000px){.ss-page .connection-layout{grid-template-columns:1fr;gap:60px}.ss-page .connection-chart{max-width:680px;margin:auto}.ss-page .connection-panel{min-height:0;max-width:680px;margin:auto;width:100%}.ss-page .community-panel{padding:32px}.ss-page .room-gallery{gap:18px}.room-portrait figcaption>strong{font-size:26px}}
@media(max-width:760px){.ss-page .sea-surface{background-size:auto 155%;background-position:100% 50%}.ss-page .room-gallery{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:0 0 14px}.ss-page .room-portrait{flex:0 0 82%;scroll-snap-align:start}.ss-page .room-gallery-note{display:flex;justify-content:space-between;gap:15px;font-size:10px}.room-gallery-note>span{display:inline}.ss-page .architecture{margin-top:80px}.ss-page .community-explorer{display:flex}.ss-page .community-stage{width:100%;max-width:420px;min-height:0;height:auto}.ss-page .community-panel{padding:42px 24px 32px}.ss-page .community-stamp{bottom:-30px}.ss-page .island-guide-panel>figure{height:auto;aspect-ratio:1.33}.ss-page .table-photo{width:100%;height:auto;aspect-ratio:3546/2633}.ss-page .connection-layout{gap:60px}.ss-page .connection-node{font-size:10px!important;min-width:70px;padding:9px 4px}.ss-page .connection-node>span:first-child{width:43px;height:43px}.ss-page .node-airport{left:77%}.ss-page .chart-sea-label{font-size:19px;max-width:155px;line-height:1.2;bottom:22px}.ss-page .chart-instruction{font-size:6px;bottom:25px}.ss-page .connection-chart{padding-bottom:40px}.ss-page .map-motion{font-size:10px!important;bottom:-18px}.map-island-name{font-size:29px}.map-island-subtitle{font-size:9px;letter-spacing:1px}}
/* Shoreline revision: foam, shallows and beach stay visible as one composition. */
.ss-page .sea-prologue{height:870px;background:var(--deep)}
.ss-page .sea-prologue .sea-surface{inset:-28px;background:url('shoreline-scene.png') center center/cover no-repeat;filter:none;animation:none;will-change:auto}
.ss-page .sea-prologue::after{background:linear-gradient(180deg,#0b354012,#0b354030 45%,transparent 70%)}
.ss-page .sea-prologue .island-prologue-title{inset:0 0 285px;padding:35px 24px 0;text-shadow:0 2px 20px #0b354080}
.ss-page .sea-prologue .island-prologue-title h2{font-size:clamp(140px,16vw,255px)}
.ss-page .sea-prologue .island-prologue-title>p:last-child{font-size:clamp(29px,3vw,43px);margin-top:24px}
.ss-page .sea-prologue .island-prologue-footer{bottom:94px;padding:0;background:none;backdrop-filter:none}
.ss-page .sea-prologue .island-prologue-footer>a{padding:12px 20px;border:1px solid #f4f1ea88;border-radius:30px;background:#0b3540c9}
.ss-page .sea-prologue .island-prologue-footer>span{padding:5px 9px;background:#0b3540b3}
.ss-page .sea-prologue .island-prologue-footer>span:last-child{font-size:10px;letter-spacing:.04em}
.ss-page .sea-prologue .sea-note{top:185px}.ss-page .sea-prologue .sea-motion{top:95px;background:#0b354060}
.ss-page .sea-prologue .shoreline-top{height:60px}.ss-page .sea-prologue .shoreline-bottom{height:58px}
.ss-page .map-waves{animation:none;opacity:.75;stroke-width:1;stroke-linecap:round}
.loose-wave{animation:loose-wave-drift var(--wave-time) ease-in-out var(--wave-delay) infinite alternate}
@keyframes loose-wave-drift{to{transform:translate(var(--wave-x),var(--wave-y))}}
.ss-page .node-water svg{width:36px;height:36px;overflow:visible;stroke-width:1.5}
.tap-drop{fill:currentColor;stroke:none;transform-origin:28px 26px}
.tap-ripple{fill:none;stroke:currentColor;transform-origin:28px 39px}
.node-water[aria-selected=true] .tap-drop{animation:tap-droplet 2s ease-in infinite}
.node-water[aria-selected=true] .tap-ripple{animation:tap-ripple 2s ease-out infinite}
.node-water[aria-selected=true] .ripple-two{animation-delay:.35s}
@keyframes tap-droplet{0%,8%{transform:translateY(-3px) scale(.5);opacity:0}22%{opacity:1}58%{transform:translateY(7px) scale(.8,1.2);opacity:1}66%,100%{transform:translateY(9px) scale(.2);opacity:0}}
@keyframes tap-ripple{0%,48%{transform:scale(.2);opacity:0}58%{opacity:.85}100%{transform:scale(1.25);opacity:0}}
.travelling-drop{fill:var(--blue);stroke:var(--ivory);stroke-width:.6}.small-drop{opacity:.65}
.water-arrival{fill:none;stroke:var(--blue);stroke-width:1.5;animation:arrival-ripple 2s ease-out infinite;transform-origin:0 0}
.arrival-two{animation-delay:1s}
@keyframes arrival-ripple{0%{transform:scale(.15);opacity:0}20%{opacity:1}100%{transform:scale(1.4);opacity:0}}
.ss-page .sea-prologue.is-motion-paused .shore-swash,.connection-chart.is-motion-paused .loose-wave,.connection-chart.is-motion-paused .tap-drop,.connection-chart.is-motion-paused .tap-ripple,.connection-chart.is-motion-paused .water-arrival{animation-play-state:paused}
@media(max-width:760px){.ss-page .sea-prologue{height:760px}.ss-page .sea-prologue .sea-surface{background-position:58% center}.ss-page .sea-prologue .island-prologue-title{inset:0 0 175px;padding-top:75px}.ss-page .sea-prologue .island-prologue-title h2{font-size:34vw}.ss-page .sea-prologue .island-prologue-title>p:last-child{font-size:28px;max-width:270px}.ss-page .sea-prologue .sea-note{display:none}.ss-page .sea-prologue .island-prologue-footer{bottom:80px;left:24px;right:24px;padding:12px}.ss-page .sea-prologue .sea-motion{top:85px}.ss-page .sea-prologue .island-prologue-title .eyebrow{max-width:260px;text-align:center}}
@media(prefers-reduced-motion:reduce){.ss-page .sea-surface,.shore-swash{filter:none}.ss-page .sea-surface.is-flowing,.ss-page .sea-current-art,.map-waves,.loose-wave,.shore-swash,.tap-drop,.tap-ripple,.water-arrival,.connection-chart.is-in-view .map-outline,.ss-page .connection-route.is-active,.ss-page .connection-node[aria-selected=true]>span:first-child{animation:none!important}.map-traveller{display:none!important}.map-motion{display:none}.tap-ripple{opacity:.65}}
