/* GoaParadiso Coastal Journey v1.2.0 — compositor-driven, fully scoped, no global layout resets. */
.gpcj-shell{
  --gpcj-ocean:var(--gp-primary,#0077b6);
  --gpcj-coral:var(--gp-accent,#ff6b35);
  --gpcj-deep:var(--gp-deep,#023047);
  --gpcj-sun:#ffb703;
  --gpcj-green:#2a9d5b;
  --gpcj-road:#6b7280;
  --gpcj-height:122px;
  --gpcj-collapsed-height:34px;
  position:relative;width:100%;max-width:none!important;margin:0!important;padding:0!important;
  z-index:18;font-family:inherit;color:var(--gpcj-deep);line-height:1.25;box-sizing:border-box;
  contain:layout paint style;
}
.gpcj-shell *{box-sizing:border-box}
.gpcj-strip{
  position:relative;width:100%;height:var(--gpcj-height);overflow:hidden;
  background:#eefbff;border-top:1px solid rgba(2,48,71,.08);border-bottom:1px solid rgba(2,48,71,.10);
  transition:height .18s ease;isolation:isolate;
}
.gpcj-art{position:absolute;inset:0;pointer-events:none;z-index:0}
.gpcj-scene-svg{display:block;width:100%;height:100%;overflow:hidden}
.gpcj-scene-title,.gpcj-arrival{
  position:absolute;top:9px;z-index:5;padding:5px 9px;border-radius:999px;
  background:rgba(255,255,255,.94);
  box-shadow:0 3px 12px rgba(2,48,71,.08);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  white-space:nowrap;max-width:42%;overflow:hidden;text-overflow:ellipsis;
}
.gpcj-scene-title{left:18px;color:var(--gpcj-deep)}
.gpcj-arrival{right:18px;color:var(--gpcj-coral);opacity:0;transform:translateY(-3px);transition:opacity .2s ease,transform .2s ease}
.gpcj-arrival.is-visible{opacity:1;transform:translateY(0)}
.gpcj-route{position:absolute;inset:0;z-index:4;pointer-events:none}
.gpcj-route-base{position:absolute;left:7%;right:7%;top:72%;height:3px;border-radius:999px;transform:translateY(-50%);background:rgba(255,255,255,.72);box-shadow:0 1px 0 rgba(2,48,71,.13)}
.gpcj-route-progress{position:absolute;inset:0;pointer-events:none;overflow:visible}
.gpcj-route-progress span{display:block;position:absolute;left:0;top:calc(72% - 2px);width:0;height:4px;border-radius:999px;background:var(--gpcj-coral);box-shadow:0 0 9px rgba(255,107,53,.34);transition:none}
.gpcj-route-points{position:absolute;inset:0;top:calc(72% - 6px);pointer-events:none}
.gpcj-route-point{position:absolute;top:0;transform:translateX(-50%);display:grid;justify-items:center;gap:5px;width:22%;min-width:0;color:var(--gpcj-deep);text-decoration:none!important;pointer-events:auto;outline:none}
.gpcj-route-point i{display:block;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:var(--gpcj-ocean);box-shadow:0 1px 6px rgba(2,48,71,.22);transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.gpcj-route-point b{display:block;max-width:96%;padding:2px 6px;border-radius:8px;background:rgba(255,255,255,.87);box-shadow:0 2px 7px rgba(2,48,71,.06);font-size:10px;line-height:1.15;text-align:center;font-weight:800;white-space:normal}
.gpcj-route-point:hover i,.gpcj-route-point:focus-visible i{transform:scale(1.22);background:var(--gpcj-coral)}
.gpcj-route-point:focus-visible b{outline:2px solid var(--gpcj-coral);outline-offset:2px}
.gpcj-route-point.is-active i{transform:scale(1.35);background:var(--gpcj-coral);box-shadow:0 0 0 5px rgba(255,107,53,.17),0 0 15px rgba(255,107,53,.42)}
.gpcj-vehicle{position:absolute;left:0;top:calc(72% - 48px);width:102px;height:48px;z-index:3;will-change:transform;pointer-events:none}
.gpcj-vehicle svg{display:block;width:100%;height:100%;overflow:visible;will-change:transform}
.gpcj-vehicle-flip{transform-box:fill-box;transform-origin:center;transition:none}
.gpcj-vehicle.is-reverse .gpcj-vehicle-flip{transform:scaleX(-1)}
.gpcj-vehicle-beach{width:62px;height:43px;top:calc(72% - 42px);}
.gpcj-shell.is-moving .gpcj-vehicle-coastal>svg,.gpcj-shell.is-moving .gpcj-vehicle-monsoon>svg{animation:gpcjRoadBob .8s ease-in-out infinite}
.gpcj-shell.is-moving .gpcj-vehicle-river>svg{animation:gpcjBoatBob 1.45s ease-in-out infinite}
.gpcj-shell.is-moving .gpcj-vehicle-hinterland>svg{animation:gpcjJeepBob .62s ease-in-out infinite}
.gpcj-shell.is-moving .gpcj-vehicle-beach>svg{animation:gpcjGlintPulse 1.6s ease-in-out infinite}
@keyframes gpcjRoadBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
@keyframes gpcjBoatBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes gpcjJeepBob{0%,100%{transform:translateY(0)}35%{transform:translateY(-2px)}70%{transform:translateY(1px)}}
@keyframes gpcjGlintPulse{0%,100%{opacity:.72}50%{opacity:1;filter:brightness(1.08)}}

/* Scene art */
.gpcj-sky{fill:#dff7ff}.gpcj-sunset-sky{fill:#ffe2bd}.gpcj-monsoon-sky{fill:#cbd8da}.gpcj-forest-sky{fill:#d9f0dc}
.gpcj-sun{fill:var(--gpcj-sun);opacity:.95}
.gpcj-soft-sun{opacity:.66}.gpcj-beach-sun{animation:gpcjSunBreath 5.8s ease-in-out infinite;transform-origin:970px 35px}
@keyframes gpcjSunBreath{0%,100%{transform:scale(1);opacity:.92}50%{transform:scale(1.08);opacity:1}}
.gpcj-water{fill:var(--gpcj-ocean);opacity:.84}.gpcj-sand{fill:#f4d58d}.gpcj-road{fill:var(--gpcj-road)}.gpcj-dirt-road{fill:#8a6b43}
.gpcj-road-line{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:16 14;opacity:.76}
.gpcj-wave{fill:none;stroke:#fff;stroke-width:2.1;stroke-linecap:round;opacity:.76;animation:gpcjWaveDrift 5s linear infinite}
.gpcj-wave-b{opacity:.48;animation-duration:7.2s;animation-direction:reverse}
@keyframes gpcjWaveDrift{0%{transform:translateX(0)}100%{transform:translateX(45px)}}
.gpcj-palm path{fill:none;stroke:var(--gpcj-green);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.gpcj-palm{transform-origin:bottom center;animation:gpcjPalmSway 5.5s ease-in-out infinite}.gpcj-palm-right{animation-delay:-2.1s}
@keyframes gpcjPalmSway{0%,100%{transform:rotate(0deg)}50%{transform:rotate(1.6deg)}}
.gpcj-city{fill:var(--gpcj-deep);opacity:.52}.gpcj-bridge{fill:none;stroke:var(--gpcj-deep);stroke-width:2;opacity:.45}
.gpcj-cloud{fill:#64748b;opacity:.42;animation:gpcjCloudDrift 18s ease-in-out infinite}.gpcj-cloud-b{animation-delay:-7s;opacity:.36}
@keyframes gpcjCloudDrift{0%,100%{transform:translateX(-12px)}50%{transform:translateX(18px)}}
.gpcj-hills{fill:var(--gpcj-green);opacity:.8}.gpcj-hills-back{opacity:.42}.gpcj-trees{fill:#17623c;opacity:.9}.gpcj-trees-dense{opacity:.95}
.gpcj-rain{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;opacity:.56;animation:gpcjRain .8s linear infinite}
@keyframes gpcjRain{0%{transform:translate(0,-5px)}100%{transform:translate(-7px,13px)}}
.gpcj-waterfall{fill:none;stroke:#e8fbff;stroke-width:8;stroke-linecap:round;opacity:.9}.gpcj-waterfall-foam{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round}

/* Scooter */
.gpcj-wheel{fill:#263238;stroke:#111827;stroke-width:2}.gpcj-wheel-hub{fill:#dbe7ec}
.gpcj-scooter-body{fill:var(--gpcj-coral);stroke:var(--gpcj-deep);stroke-width:2}.gpcj-scooter-floor,.gpcj-scooter-fork,.gpcj-scooter-handle{fill:none;stroke:var(--gpcj-deep);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.gpcj-scooter-seat{fill:var(--gpcj-deep)}.gpcj-rider{fill:none;stroke:var(--gpcj-deep);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.gpcj-helmet{fill:var(--gpcj-sun);stroke:var(--gpcj-deep);stroke-width:1.5}.gpcj-luggage{fill:#f4d58d;stroke:var(--gpcj-deep);stroke-width:1.5}.gpcj-shadow{fill:none;stroke:rgba(2,48,71,.25);stroke-width:3;stroke-linecap:round}
/* Mandovi boat */
.gpcj-boat-wake{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;opacity:.8}.gpcj-boat-hull{fill:var(--gpcj-deep)}.gpcj-boat-upper{fill:#fff;stroke:#bddbe6;stroke-width:1.5}.gpcj-boat-window{fill:#0b526b}.gpcj-boat-mast{fill:none;stroke:#334155;stroke-width:2}.gpcj-boat-pennant{fill:var(--gpcj-coral)}
/* Hinterland jeep */
.gpcj-jeep-body{fill:var(--gpcj-green);stroke:var(--gpcj-deep);stroke-width:2}.gpcj-jeep-window{fill:#dff7ff;stroke:var(--gpcj-deep);stroke-width:1.5}.gpcj-jeep-bumper{fill:none;stroke:var(--gpcj-deep);stroke-width:3;stroke-linecap:round}.gpcj-jeep-light{fill:var(--gpcj-sun);stroke:var(--gpcj-deep);stroke-width:1}
/* Beach glint */
.gpcj-glint-core{fill:var(--gpcj-sun)}.gpcj-glint-ray,.gpcj-glint-reflection{fill:none;stroke:var(--gpcj-sun);stroke-width:3;stroke-linecap:round}.gpcj-glint-reflection{stroke:#fff;opacity:.85}

/* Drawer handle: outside the visual strip, never covers the moving scene. */
.gpcj-collapse-toggle{position:relative;z-index:7;display:grid;place-items:center;width:34px;height:20px;min-width:34px;min-height:20px;margin:-1px auto 0;padding:0;border:1px solid rgba(2,48,71,.17);border-top:0;border-radius:0 0 11px 11px;background:#fff;color:var(--gpcj-ocean);box-shadow:0 5px 12px rgba(2,48,71,.10);cursor:pointer;line-height:1}
.gpcj-collapse-toggle:hover,.gpcj-collapse-toggle:focus-visible{background:#f3fcff;color:var(--gpcj-coral);outline:2px solid rgba(255,107,53,.18);outline-offset:2px}
.gpcj-collapse-toggle svg{display:block;width:22px;height:17px;overflow:visible}.gpcj-toggle-tray{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;opacity:.7}.gpcj-toggle-arrow{fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;transform-origin:12px 9px;transition:transform .18s ease}.gpcj-collapse-toggle.is-collapsed .gpcj-toggle-arrow{transform:rotate(180deg)}
.gpcj-shell.is-collapsed .gpcj-strip{height:var(--gpcj-collapsed-height)!important;background:linear-gradient(90deg,#eefbff,#fff7e7,#eefbff)}
.gpcj-shell.is-collapsed .gpcj-art,.gpcj-shell.is-collapsed .gpcj-route,.gpcj-shell.is-collapsed .gpcj-vehicle,.gpcj-shell.is-collapsed .gpcj-arrival{visibility:hidden;opacity:0;pointer-events:none}
.gpcj-shell.is-collapsed .gpcj-scene-title{top:50%;left:50%;transform:translate(-50%,-50%);max-width:88%;background:transparent;box-shadow:none;padding:0;color:var(--gpcj-deep)}

/* Brand effects: intentionally restrained. */
.gpcj-logo-ocean-coral{animation:gpcjLogoOceanCoral 2.6s ease-in-out both;will-change:filter,transform}
@keyframes gpcjLogoOceanCoral{0%,100%{filter:none;transform:none}35%{filter:hue-rotate(8deg) saturate(1.08) drop-shadow(0 0 5px rgba(0,119,182,.28));transform:scale(1.012)}68%{filter:hue-rotate(-7deg) saturate(1.12) drop-shadow(0 0 7px rgba(255,107,53,.26));transform:scale(1.018)}}
.gpcj-home-title-fx .gpcj-title-sea,.gpcj-home-title-fx .gpcj-title-soul,.gpcj-home-title-fx .gpcj-title-sunshine{display:inline-block}
.gpcj-home-title-fx .gpcj-title-sea{animation:gpcjTitleSea 2.8s ease-in-out 1 both}.gpcj-home-title-fx .gpcj-title-soul{animation:gpcjTitleSoul 2.8s ease-in-out 1 .22s both}.gpcj-home-title-fx .gpcj-title-sunshine{animation:gpcjTitleSunshine 2.8s ease-in-out 1 .44s both}
@keyframes gpcjTitleSea{0%,100%,22%{transform:none;text-shadow:none}9%{transform:translateY(-1px);text-shadow:0 4px 14px rgba(0,119,182,.25)}}
@keyframes gpcjTitleSoul{0%,100%,27%{transform:none}11%{transform:scale(1.012)}}
@keyframes gpcjTitleSunshine{0%,100%,32%{transform:none;text-shadow:none}13%{transform:translateY(-1px) scale(1.016);text-shadow:0 4px 16px rgba(255,183,3,.32)}}

.gpcj-shortcode-host{display:block;width:100%;max-width:none!important}
.gpcj-shell [hidden]{display:none!important}
.gpcj-shell.is-tab-hidden .gpcj-wave,.gpcj-shell.is-tab-hidden .gpcj-palm,.gpcj-shell.is-tab-hidden .gpcj-cloud,.gpcj-shell.is-tab-hidden .gpcj-rain,.gpcj-shell.is-tab-hidden .gpcj-vehicle>svg,.gpcj-shell.is-tab-hidden .gpcj-bike-wrap,.gpcj-shell.is-tab-hidden .gpcj-beach-sun{animation-play-state:paused!important}
.gpcj-shell.is-offscreen .gpcj-wave,.gpcj-shell.is-offscreen .gpcj-palm,.gpcj-shell.is-offscreen .gpcj-cloud,.gpcj-shell.is-offscreen .gpcj-rain,.gpcj-shell.is-offscreen .gpcj-vehicle>svg,.gpcj-shell.is-offscreen .gpcj-bike-wrap,.gpcj-shell.is-offscreen .gpcj-beach-sun{animation-play-state:paused!important}
.gpcj-shell.is-performance-mode .gpcj-strip{transition:none}
.gpcj-shell.is-performance-mode .gpcj-route-progress span{box-shadow:none}

@media(max-width:900px){
  .gpcj-scene-title,.gpcj-arrival{top:7px;font-size:8.5px;letter-spacing:.045em;padding:4px 7px;max-width:45%}.gpcj-scene-title{left:9px}.gpcj-arrival{right:9px}
  .gpcj-route-base{left:7%;right:7%;top:70%}.gpcj-route-progress span{top:calc(70% - 2px)}.gpcj-route-points{top:calc(70% - 5px)}.gpcj-route-point{width:23%}
  .gpcj-route-point i{width:10px;height:10px}.gpcj-route-point b{font-size:8.5px;padding:2px 3px;max-width:98%}
  .gpcj-vehicle{top:calc(70% - 44px);width:91px;height:44px}.gpcj-vehicle-beach{width:56px;height:40px;top:calc(70% - 39px)}
  .gpcj-collapse-toggle{width:32px;height:19px;min-width:32px;min-height:19px}.gpcj-collapse-toggle svg{width:20px;height:16px}
}
@media(max-width:520px){
  .gpcj-route-point b{font-size:7.7px;line-height:1.08;background:rgba(255,255,255,.82)}
  .gpcj-vehicle{width:84px;height:41px}.gpcj-scene-title,.gpcj-arrival{font-size:7.8px}
}
@media(prefers-reduced-motion:reduce){
  .gpcj-shell *,.gpcj-logo-ocean-coral,.gpcj-home-title-fx *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .gpcj-collapse-toggle{display:none!important}.gpcj-arrival{opacity:1;transform:none}
}

/* v1.1.0 — approved premium bike + dual GoaParadiso visual sync + first-paint protection. */
.gpcj-has-premium-bike .gpcj-vehicle{
  width:132px;
  height:84px;
  top:calc(72% - 67px);
}
.gpcj-bike-wrap{position:relative;display:block;width:100%;height:100%;transform-origin:center center;transition:none}
.gpcj-bike-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;opacity:0;transition:opacity .2s ease;pointer-events:none}
.gpcj-bike-image.is-ready{opacity:1}
.gpcj-bike-placeholder{position:absolute;inset:17% 8% 0;display:block;opacity:.62;transition:opacity .18s ease;pointer-events:none}
.gpcj-bike-placeholder.is-replaced{opacity:0}
.gpcj-bike-placeholder svg{display:block;width:100%;height:100%}
.gpcj-bike-ground{position:absolute;left:12%;right:9%;bottom:5px;height:5px;border-radius:50%;background:rgba(3,41,57,.18);transform:scaleY(.65);pointer-events:none}
.gpcj-shell.is-moving.gpcj-has-premium-bike .gpcj-bike-wrap{animation:gpcjPremiumBikeBob .95s ease-in-out infinite}
@keyframes gpcjPremiumBikeBob{0%,100%{translate:0 0}50%{translate:0 -1px}}

/* Two visual treatments mirror the approved Ocean Luxe and Sunset Vibrant site modes.
   Dimensions and route geometry never change, so the switch cannot move page content. */
.gpcj-shell[data-gpcj-vibe="ocean-luxe"]{
  --gpcj-ocean:#08a7c9;
  --gpcj-coral:#ff5b37;
  --gpcj-deep:#073d58;
  --gpcj-sun:#ffbd2e;
  --gpcj-green:#19966a;
}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"]{
  --gpcj-ocean:#087fba;
  --gpcj-coral:#ff4e3c;
  --gpcj-deep:#07315f;
  --gpcj-sun:#ff9e22;
  --gpcj-green:#14815f;
}
.gpcj-shell[data-gpcj-vibe="ocean-luxe"] .gpcj-strip{background:linear-gradient(90deg,#e9fbff,#fff7e8 55%,#e8fbff);border-color:rgba(8,139,178,.18)}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-strip{background:linear-gradient(90deg,#eaf8ff,#fff0dc 54%,#edf7ff);border-color:rgba(255,94,54,.18)}
.gpcj-shell[data-gpcj-vibe="ocean-luxe"] .gpcj-scene-title,
.gpcj-shell[data-gpcj-vibe="ocean-luxe"] .gpcj-arrival{background:#ffffff;color:#073d58;border:1px solid rgba(8,167,201,.16)}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-scene-title,
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-arrival{background:#07315f;color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:0 4px 14px rgba(4,49,95,.14)}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-arrival{color:#ffd5ba}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-route-point b{background:rgba(7,49,95,.90);color:#fff;box-shadow:none}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-route-base{background:rgba(255,255,255,.84)}

/* Keep paint isolated; the moving bike never invalidates the rest of the document. */
.gpcj-strip,.gpcj-vehicle{contain:layout paint style}
.gpcj-has-premium-bike .gpcj-vehicle svg{will-change:auto}
.gpcj-shell.is-performance-mode .gpcj-bike-wrap{animation-duration:1.1s}

@media(max-width:900px){
  .gpcj-has-premium-bike .gpcj-vehicle{width:112px;height:73px;top:calc(70% - 59px)}
}
@media(max-width:520px){
  .gpcj-has-premium-bike .gpcj-vehicle{width:98px;height:66px;top:calc(70% - 54px)}
}
@media(prefers-reduced-motion:reduce){
  .gpcj-has-premium-bike .gpcj-bike-wrap{animation:none!important}
  .gpcj-bike-image{transition:none!important}
}

/* v1.2.0 — approved rider scene + premium coastal banner + zero-frame-loop motion. */
.gpcj-shell{--gpcj-height:178px}
.gpcj-strip{background:linear-gradient(180deg,#78d8f2 0%,#c9f3ff 32%,#11a7c9 33%,#0d8fb7 53%,#f7c776 54%,#6f7276 68%,#4e5357 100%);border-color:rgba(2,72,102,.15);box-shadow:inset 0 -18px 34px rgba(2,44,67,.12)}
.gpcj-scene-coastal .gpcj-art:after,.gpcj-scene-monsoon .gpcj-art:after{content:'';position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.05) 12%,rgba(44,50,55,.08) 13%,rgba(36,40,44,.14) 100%);pointer-events:none}
.gpcj-scene-coastal .gpcj-scene-svg,.gpcj-scene-monsoon .gpcj-scene-svg{filter:saturate(1.22) contrast(1.03)}
.gpcj-scene-coastal .gpcj-sky{fill:#9be7ff}.gpcj-scene-coastal .gpcj-water{fill:#0aa6c7;opacity:.96}.gpcj-scene-coastal .gpcj-sand{fill:#f7d27c}.gpcj-scene-coastal .gpcj-road{fill:#5f6368}
.gpcj-scene-coastal .gpcj-palm path{stroke:#17865e}.gpcj-scene-coastal .gpcj-road-line{stroke:#ffd43b;stroke-width:2.4;opacity:.92}
.gpcj-scene-title{top:12px;left:18px;padding:8px 13px;border-radius:12px;background:linear-gradient(135deg,#8b4b19,#c47322);color:#fff!important;border:1px solid rgba(255,255,255,.26)!important;box-shadow:0 7px 18px rgba(50,31,12,.18)!important;letter-spacing:.09em}
.gpcj-scene-title:before{content:'GOA · ';color:#ffd789}
.gpcj-arrival{top:auto;right:18px;bottom:18px;max-width:38%;padding:9px 13px;border-radius:14px;background:rgba(4,49,82,.94)!important;color:#fff!important;border:1px solid rgba(255,255,255,.20)!important;box-shadow:0 10px 26px rgba(1,40,66,.22)!important;text-transform:none;letter-spacing:.02em;font-size:11px}

/* The approved mockup places route information above the moving motorcycle. */
.gpcj-scene-coastal .gpcj-route-base,.gpcj-scene-monsoon .gpcj-route-base{top:30%;height:3px;background:rgba(255,255,255,.88);box-shadow:0 0 8px rgba(255,255,255,.38)}
.gpcj-scene-coastal .gpcj-route-progress span,.gpcj-scene-monsoon .gpcj-route-progress span{top:calc(30% - 2px);height:4px;background:linear-gradient(90deg,#ff9b24,#ff4f3b)}
.gpcj-scene-coastal .gpcj-route-points,.gpcj-scene-monsoon .gpcj-route-points{top:calc(30% - 14px)}
.gpcj-scene-coastal .gpcj-route-point,.gpcj-scene-monsoon .gpcj-route-point{gap:6px}
.gpcj-scene-coastal .gpcj-route-point i,.gpcj-scene-monsoon .gpcj-route-point i{position:relative;width:30px;height:30px;border:3px solid #fff;background:linear-gradient(135deg,#ff9a1f,#ff5b33);box-shadow:0 5px 13px rgba(3,65,96,.20)}
.gpcj-scene-coastal .gpcj-route-point i:after,.gpcj-scene-monsoon .gpcj-route-point i:after{position:absolute;inset:0;display:grid;place-items:center;color:#0b3855;font-size:13px;font-style:normal;line-height:1}
.gpcj-scene-coastal .gpcj-route-point:nth-child(1) i:after,.gpcj-scene-monsoon .gpcj-route-point:nth-child(1) i:after{content:'☀'}
.gpcj-scene-coastal .gpcj-route-point:nth-child(2) i:after,.gpcj-scene-monsoon .gpcj-route-point:nth-child(2) i:after{content:'▦'}
.gpcj-scene-coastal .gpcj-route-point:nth-child(3) i:after,.gpcj-scene-monsoon .gpcj-route-point:nth-child(3) i:after{content:'☂'}
.gpcj-scene-coastal .gpcj-route-point:nth-child(4) i:after,.gpcj-scene-monsoon .gpcj-route-point:nth-child(4) i:after{content:'✦'}
.gpcj-scene-coastal .gpcj-route-point b,.gpcj-scene-monsoon .gpcj-route-point b{padding:4px 8px;background:rgba(255,255,255,.92);color:#0a3552;font-size:10px;box-shadow:0 4px 12px rgba(2,54,82,.10)}
.gpcj-scene-coastal .gpcj-route-point.is-active i,.gpcj-scene-monsoon .gpcj-route-point.is-active i{background:linear-gradient(135deg,#ff7b1d,#ff342f);box-shadow:0 0 0 5px rgba(255,116,40,.16),0 7px 20px rgba(255,78,42,.28)}

.gpcj-has-premium-bike .gpcj-vehicle{width:190px;height:138px;top:auto;bottom:5px;z-index:3}
.gpcj-bike-image{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 7px 7px rgba(3,31,45,.18));transform:translateZ(0)}
.gpcj-bike-placeholder{inset:24% 6% 3%;opacity:.54}
.gpcj-bike-ground{left:15%;right:8%;bottom:3px;height:8px;background:rgba(2,28,41,.20);filter:blur(1px)}
.gpcj-shell.is-moving.gpcj-has-premium-bike .gpcj-bike-wrap{animation:gpcjPremiumBikeBob 1.15s ease-in-out infinite}
.gpcj-vehicle{will-change:transform;transform:translate3d(0,0,0)}
.gpcj-route-progress span{will-change:left,width}

/* Ocean Luxe and Sunset Vibrant stay in sync without moving layout. */
.gpcj-shell[data-gpcj-vibe="ocean-luxe"] .gpcj-strip{background:linear-gradient(180deg,#8ae3f5 0%,#d4f7ff 32%,#0fb2ce 33%,#0696bd 53%,#f8ce79 54%,#676b70 69%,#4b5054 100%)}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-strip{background:linear-gradient(180deg,#76cdf4 0%,#c8ecff 30%,#058dbd 31%,#0579a7 52%,#f4b55b 53%,#6e6260 69%,#514a4a 100%)}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-scene-title{background:linear-gradient(135deg,#0b3b66,#0e6086)}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-arrival{background:rgba(6,48,88,.96)!important}

/* Non-coastal contexts keep their original compact route geometry. */
.gpcj-scene-river .gpcj-route-base,.gpcj-scene-beach .gpcj-route-base,.gpcj-scene-hinterland .gpcj-route-base{top:72%}
.gpcj-scene-river .gpcj-route-progress span,.gpcj-scene-beach .gpcj-route-progress span,.gpcj-scene-hinterland .gpcj-route-progress span{top:calc(72% - 2px)}
.gpcj-scene-river .gpcj-route-points,.gpcj-scene-beach .gpcj-route-points,.gpcj-scene-hinterland .gpcj-route-points{top:calc(72% - 6px)}
.gpcj-scene-river .gpcj-arrival,.gpcj-scene-beach .gpcj-arrival,.gpcj-scene-hinterland .gpcj-arrival{top:9px;bottom:auto}

@media(max-width:900px){
 .gpcj-shell{--gpcj-height:128px}
 .gpcj-has-premium-bike .gpcj-vehicle{width:135px;height:98px;bottom:2px;top:auto}
 .gpcj-scene-coastal .gpcj-route-base,.gpcj-scene-monsoon .gpcj-route-base{top:28%}
 .gpcj-scene-coastal .gpcj-route-progress span,.gpcj-scene-monsoon .gpcj-route-progress span{top:calc(28% - 2px)}
 .gpcj-scene-coastal .gpcj-route-points,.gpcj-scene-monsoon .gpcj-route-points{top:calc(28% - 10px)}
 .gpcj-scene-coastal .gpcj-route-point i,.gpcj-scene-monsoon .gpcj-route-point i{width:22px;height:22px;border-width:2px}
 .gpcj-scene-coastal .gpcj-route-point i:after,.gpcj-scene-monsoon .gpcj-route-point i:after{font-size:10px}
 .gpcj-scene-coastal .gpcj-route-point b,.gpcj-scene-monsoon .gpcj-route-point b{font-size:8px;padding:2px 4px}
 .gpcj-arrival{right:8px;bottom:8px;font-size:8.5px;max-width:46%;padding:6px 8px}
 .gpcj-scene-title{left:8px;top:7px;font-size:8px;padding:5px 7px}
}
@media(max-width:520px){
 .gpcj-has-premium-bike .gpcj-vehicle{width:116px;height:84px;bottom:0}
 .gpcj-scene-coastal .gpcj-route-point b,.gpcj-scene-monsoon .gpcj-route-point b{display:none}
 .gpcj-scene-coastal .gpcj-route-point i,.gpcj-scene-monsoon .gpcj-route-point i{width:20px;height:20px}
}
@media(prefers-reduced-motion:reduce){
 .gpcj-vehicle{transition:none!important}.gpcj-route-progress span{transition:none!important}
}

/* v1.2.0 photographic Goa coast layer. Loaded only after idle by JS, never during first paint. */
.gpcj-shell.gpcj-coast-photo-ready.gpcj-scene-coastal .gpcj-strip,
.gpcj-shell.gpcj-coast-photo-ready.gpcj-scene-monsoon .gpcj-strip{
  background-image:linear-gradient(180deg,rgba(39,163,204,.10) 0%,rgba(10,119,157,.05) 48%,rgba(245,183,82,.10) 49%,rgba(51,55,59,.14) 100%),var(--gpcj-coast-photo);
  background-size:cover;
  background-position:center 59%;
  background-repeat:no-repeat;
}
.gpcj-shell.gpcj-coast-photo-ready.gpcj-scene-coastal .gpcj-scene-svg{opacity:.18}
.gpcj-shell.gpcj-coast-photo-ready.gpcj-scene-monsoon .gpcj-scene-svg{opacity:.38;mix-blend-mode:multiply}
.gpcj-shell.gpcj-coast-photo-ready.gpcj-scene-coastal .gpcj-art:after,
.gpcj-shell.gpcj-coast-photo-ready.gpcj-scene-monsoon .gpcj-art:after{
  background:linear-gradient(180deg,transparent 0 61%,rgba(66,68,70,.12) 62%,rgba(52,54,57,.94) 68%,rgba(41,43,46,.98) 100%);
  height:100%;
}


/* v1.2.1 honeymoon couple + recurring heading polish */
.gpcj-has-premium-bike .gpcj-vehicle{width:204px;height:144px;bottom:4px}
.gpcj-bike-image{filter:drop-shadow(0 10px 10px rgba(3,31,45,.18))}
.gpcj-shell[data-gpcj-vibe="sunset-vibrant"] .gpcj-route-point b{background:rgba(6,49,88,.92);color:#fff}
@media(max-width:900px){.gpcj-has-premium-bike .gpcj-vehicle{width:148px;height:104px}}
@media(max-width:520px){.gpcj-has-premium-bike .gpcj-vehicle{width:124px;height:90px}}


/* v1.2.2 couple asset + scene clean-up */
.gpcj-scene-title{background:linear-gradient(135deg,rgba(11,72,103,.92),rgba(16,120,140,.88))!important;color:#fff!important;border-color:rgba(255,255,255,.22)!important;box-shadow:0 10px 24px rgba(4,53,77,.22)!important}
.gpcj-scene-title:before{content:''!important}
.gpcj-scene-title,.gpcj-arrival{text-shadow:0 1px 0 rgba(0,0,0,.12)}
.gpcj-has-premium-bike .gpcj-vehicle{width:228px;height:154px;bottom:6px}
.gpcj-bike-image{filter:drop-shadow(0 12px 16px rgba(3,31,45,.20))}
.gpcj-scene-coastal .gpcj-vehicle,.gpcj-scene-monsoon .gpcj-vehicle{bottom:4px}
@media(max-width:900px){.gpcj-has-premium-bike .gpcj-vehicle{width:166px;height:114px}}
@media(max-width:520px){.gpcj-has-premium-bike .gpcj-vehicle{width:132px;height:94px}}

/* v1.2.3 animated GoaParadiso header wordmark phases. Transform/opacity only. */
.gp-brand-animated{will-change:auto}
.gp-brand-animated .gp-brand-letter,.gp-brand-animated .gp-brand-goa,.gp-brand-animated .gp-brand-paradiso,.gp-brand-animated .gp-brand-symbol,.gp-brand-animated .gp-brand-tagline{transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .35s ease,color .4s ease,filter .4s ease}
.gp-brand-animated.gpcj-logo-type .gp-brand-letter{opacity:0;animation:gpcjBrandType .48s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--gp-letter-index) * 85ms)}
.gp-brand-animated.gpcj-logo-type .gp-brand-tagline{opacity:0;animation:gpcjBrandTag .65s ease forwards 1.05s}
.gp-brand-animated.gpcj-logo-type .gp-brand-symbol{animation:gpcjBrandSunRise 1.15s ease both}
@keyframes gpcjBrandType{0%{opacity:0;transform:translateY(8px) scale(.92)}55%{opacity:1;transform:translateY(-1px) scale(1.03)}100%{opacity:1;transform:none}}
@keyframes gpcjBrandTag{to{opacity:1}}
@keyframes gpcjBrandSunRise{0%{opacity:.4;transform:translateY(5px) scale(.94)}65%{opacity:1;transform:translateY(-1px) scale(1.04)}100%{transform:none}}
.gp-brand-animated.gpcj-logo-color .gp-brand-goa .gp-brand-letter:nth-child(1){color:#00a5b8}.gp-brand-animated.gpcj-logo-color .gp-brand-goa .gp-brand-letter:nth-child(2){color:#0077b6}.gp-brand-animated.gpcj-logo-color .gp-brand-goa .gp-brand-letter:nth-child(3){color:#2a9d5b}
.gp-brand-animated.gpcj-logo-color .gp-brand-paradiso .gp-brand-letter:nth-child(odd){color:#ff6b35}.gp-brand-animated.gpcj-logo-color .gp-brand-paradiso .gp-brand-letter:nth-child(even){color:#ff9f1c}
.gp-brand-animated.gpcj-logo-color .gp-brand-symbol{filter:saturate(1.2) drop-shadow(0 0 6px rgba(255,107,53,.22));transform:rotate(3deg) scale(1.035)}
.gp-brand-animated.gpcj-logo-play .gp-brand-goa{transform:translateX(22px) rotate(-2deg)}
.gp-brand-animated.gpcj-logo-play .gp-brand-paradiso{transform:translateX(-22px) rotate(2deg)}
.gp-brand-animated.gpcj-logo-play .gp-brand-symbol{transform:translateX(5px) rotate(-6deg) scale(1.04)}
.gp-brand-animated.gpcj-logo-play .gp-brand-tagline{transform:translateY(2px);letter-spacing:2px}
.gp-brand-animated.gpcj-logo-settle .gp-brand-goa,.gp-brand-animated.gpcj-logo-settle .gp-brand-paradiso,.gp-brand-animated.gpcj-logo-settle .gp-brand-symbol,.gp-brand-animated.gpcj-logo-settle .gp-brand-tagline{transform:none;filter:none}
@media(prefers-reduced-motion:reduce){.gp-brand-animated .gp-brand-letter,.gp-brand-animated .gp-brand-goa,.gp-brand-animated .gp-brand-paradiso,.gp-brand-animated .gp-brand-symbol,.gp-brand-animated .gp-brand-tagline{animation:none!important;transition:none!important}}


/* v1.2.4 — premium repeating Sea · soul · sunshine sequence.
   Transform/opacity/clip-path only: no layout movement and no animation frame loop. */
.gpcj-home-title-fx .gpcj-title-sea,
.gpcj-home-title-fx .gpcj-title-soul,
.gpcj-home-title-fx .gpcj-title-sunshine{display:inline-block;position:relative;transform-origin:center;will-change:transform,opacity,clip-path}

/* Type-on: sequential reveal, then the full line remains stable. */
.gpcj-title-type .gpcj-title-sea{animation:gpcjHeadlineType .72s steps(6,end) both}
.gpcj-title-type .gpcj-title-soul{animation:gpcjHeadlineType .72s steps(6,end) .48s both}
.gpcj-title-type .gpcj-title-sunshine{animation:gpcjHeadlineType 1.02s steps(10,end) .96s both}
@keyframes gpcjHeadlineType{0%{clip-path:inset(0 100% 0 0);opacity:.12}100%{clip-path:inset(0 0 0 0);opacity:1}}

/* Colour play: brand colours travel across the three words. */
.gpcj-title-color .gpcj-title-sea,
.gpcj-title-color .gpcj-title-soul,
.gpcj-title-color .gpcj-title-sunshine{
  background:linear-gradient(90deg,var(--gpcj-ocean,#00a6c8),#0d315c,var(--gpcj-coral,#ff5b3a),var(--gpcj-sun,#ffb703),var(--gpcj-ocean,#00a6c8));
  background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;
  animation:gpcjHeadlineColour 2.25s ease-in-out both
}
.gpcj-title-color .gpcj-title-soul{animation-delay:.12s}.gpcj-title-color .gpcj-title-sunshine{animation-delay:.24s}
@keyframes gpcjHeadlineColour{0%{background-position:0% 50%;transform:none}50%{background-position:100% 50%;transform:translateY(-2px) scale(1.018)}100%{background-position:35% 50%;transform:none}}

/* Word interaction: each word leans toward the next, then springs back. */
.gpcj-title-play .gpcj-title-sea{animation:gpcjHeadlineSeaPlay 2.05s cubic-bezier(.2,.75,.25,1) both}
.gpcj-title-play .gpcj-title-soul{animation:gpcjHeadlineSoulPlay 2.05s cubic-bezier(.2,.75,.25,1) both}
.gpcj-title-play .gpcj-title-sunshine{animation:gpcjHeadlineSunPlay 2.05s cubic-bezier(.2,.75,.25,1) both}
@keyframes gpcjHeadlineSeaPlay{0%,100%{transform:none}28%{transform:translate3d(13px,-4px,0) rotate(-2deg) scale(1.03)}58%{transform:translate3d(-4px,2px,0) rotate(1deg)}}
@keyframes gpcjHeadlineSoulPlay{0%,100%{transform:none}28%{transform:translate3d(-7px,4px,0) rotate(2deg) scale(1.045)}58%{transform:translate3d(8px,-3px,0) rotate(-1deg)}}
@keyframes gpcjHeadlineSunPlay{0%,100%{transform:none}28%{transform:translate3d(-12px,-3px,0) rotate(1.5deg) scale(1.025)}58%{transform:translate3d(4px,2px,0) rotate(-.7deg)}}

/* Beach-wave finish: a small staggered rise + glow, not a continuous bounce. */
.gpcj-title-wave .gpcj-title-sea{animation:gpcjHeadlineWave 1.9s ease-in-out both}
.gpcj-title-wave .gpcj-title-soul{animation:gpcjHeadlineWave 1.9s ease-in-out .14s both}
.gpcj-title-wave .gpcj-title-sunshine{animation:gpcjHeadlineWave 1.9s ease-in-out .28s both}
@keyframes gpcjHeadlineWave{0%,100%{transform:none;filter:none}34%{transform:translate3d(0,-7px,0) scale(1.025);filter:drop-shadow(0 8px 13px rgba(0,119,182,.20))}64%{transform:translate3d(0,2px,0) scale(.995);filter:drop-shadow(0 5px 11px rgba(255,107,53,.16))}}

.gpcj-title-settle .gpcj-title-sea,
.gpcj-title-settle .gpcj-title-soul,
.gpcj-title-settle .gpcj-title-sunshine{animation:gpcjHeadlineSettle 1.25s ease-out both}
@keyframes gpcjHeadlineSettle{0%{transform:scale(1.018);filter:brightness(1.08)}100%{transform:none;filter:none}}

@media(max-width:700px){
  @keyframes gpcjHeadlineSeaPlay{0%,100%{transform:none}28%{transform:translate3d(7px,-3px,0) rotate(-1.2deg) scale(1.02)}58%{transform:translate3d(-2px,1px,0)}}
  @keyframes gpcjHeadlineSoulPlay{0%,100%{transform:none}28%{transform:translate3d(-4px,3px,0) rotate(1.2deg) scale(1.03)}58%{transform:translate3d(4px,-2px,0)}}
  @keyframes gpcjHeadlineSunPlay{0%,100%{transform:none}28%{transform:translate3d(-6px,-2px,0) rotate(.9deg) scale(1.018)}58%{transform:translate3d(2px,1px,0)}}
}
@media(prefers-reduced-motion:reduce){
  .gpcj-title-type .gpcj-title-sea,.gpcj-title-type .gpcj-title-soul,.gpcj-title-type .gpcj-title-sunshine,
  .gpcj-title-color .gpcj-title-sea,.gpcj-title-color .gpcj-title-soul,.gpcj-title-color .gpcj-title-sunshine,
  .gpcj-title-play .gpcj-title-sea,.gpcj-title-play .gpcj-title-soul,.gpcj-title-play .gpcj-title-sunshine,
  .gpcj-title-wave .gpcj-title-sea,.gpcj-title-wave .gpcj-title-soul,.gpcj-title-wave .gpcj-title-sunshine,
  .gpcj-title-settle .gpcj-title-sea,.gpcj-title-settle .gpcj-title-soul,.gpcj-title-settle .gpcj-title-sunshine{animation:none!important;transform:none!important;clip-path:none!important;filter:none!important}
}


/* v1.2.5 beach mood upgrade: dancing couple + shack instead of simple glint icon */
.gpcj-beach-shack{fill:rgba(146,84,36,.96);stroke:rgba(255,245,225,.55);stroke-width:2}
.gpcj-beach-lanterns path{stroke:#ca7d3a;stroke-width:3;stroke-linecap:round}.gpcj-beach-lanterns circle{fill:#ffd36a;opacity:.95}
.gpcj-vehicle-beach{width:114px;height:62px;bottom:6px}
.gpcj-dance-couple{transform-origin:50% 70%;animation:gpcjCoupleSway 5.6s ease-in-out infinite}
.gpcj-couple-head-a,.gpcj-couple-head-b{fill:#f7c7a7}.gpcj-couple-body-a{fill:#ff8a5a}.gpcj-couple-body-b{fill:#117f85}.gpcj-couple-arm-a,.gpcj-couple-leg-a,.gpcj-couple-arm-b,.gpcj-couple-leg-b{stroke:#244451;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:none}.gpcj-couple-shadow{fill:rgba(27,58,70,.18)}.gpcj-couple-music{stroke:#f8f0d1;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.95}
@keyframes gpcjCoupleSway{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-1px)}}
@media(max-width:600px){.gpcj-vehicle-beach{width:96px;height:54px;bottom:4px}}

/* v1.3.0 Goa Mood Music — opt-in, lazy audio, compact glass player */
.gpcj-music-player{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:99980;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#123a54;line-height:1.25;max-width:calc(100vw - 30px)}
.gpcj-music-peek{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:linear-gradient(135deg,rgba(4,81,112,.94),rgba(0,139,167,.92) 58%,rgba(255,107,53,.92));color:#fff;box-shadow:0 14px 38px rgba(2,48,71,.24);backdrop-filter:blur(10px);font:800 13px/1 inherit;cursor:pointer}
.gpcj-music-peek:hover,.gpcj-music-peek:focus-visible{transform:translateY(-1px);box-shadow:0 17px 42px rgba(2,48,71,.28);outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.gpcj-music-note{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(255,255,255,.17);font-size:16px}.gpcj-music-player.is-playing .gpcj-music-note{animation:gpcjMusicPulse 2.2s ease-in-out infinite}@keyframes gpcjMusicPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12) rotate(7deg)}}
.gpcj-music-card{position:absolute;right:0;bottom:54px;width:min(350px,calc(100vw - 30px));padding:16px;border:1px solid rgba(8,86,118,.14);border-radius:22px;background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(238,250,254,.98));box-shadow:0 24px 70px rgba(2,48,71,.25);backdrop-filter:blur(14px)}
.gpcj-music-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.gpcj-music-head small{display:block;color:#0c8dac;font-size:9px;font-weight:900;letter-spacing:.18em}.gpcj-music-head strong{display:block;margin-top:4px;color:#0b3551;font-size:16px;line-height:1.2}.gpcj-music-head em{display:block;margin-top:3px;color:#67808d;font-size:11px;font-style:normal}.gpcj-music-close{width:31px;height:31px;border:0;border-radius:50%;background:#eaf7fb;color:#24596f;font-size:20px;line-height:1;cursor:pointer}.gpcj-music-close:hover{background:#d9f1f8}
.gpcj-music-select{width:100%;height:38px;margin:13px 0 10px;padding:0 11px;border:1px solid #d4e7ee;border-radius:11px;background:#fff;color:#24495f;font-size:12px;font-weight:700;outline:none}.gpcj-music-select:focus{border-color:#1ba6c3;box-shadow:0 0 0 3px rgba(27,166,195,.11)}
.gpcj-music-controls{display:grid;grid-template-columns:42px 50px 42px 1fr 48px;gap:7px;align-items:center}.gpcj-music-controls button{height:40px;border:0;border-radius:12px;background:#e9f7fb;color:#0c5d7e;font-weight:900;cursor:pointer}.gpcj-music-controls button:hover{background:#d8f0f7}.gpcj-music-play{background:linear-gradient(135deg,#ff9b1c,#ff6031)!important;color:#fff!important;font-size:16px;box-shadow:0 8px 18px rgba(255,100,45,.21)}.gpcj-music-mode{font-size:10px;letter-spacing:.05em}.gpcj-music-mode.is-auto{background:#dff8ef!important;color:#0c795d!important}.gpcj-music-off{font-size:10px;color:#6e7880!important}.gpcj-music-off.is-off{background:#f3f3f3!important;color:#9a6d6d!important}
.gpcj-music-volume{display:grid;grid-template-columns:18px 1fr 38px;gap:8px;align-items:center;margin-top:12px;color:#5e7988;font-size:11px}.gpcj-music-volume input{width:100%;accent-color:#0c9dbc}.gpcj-music-volume b{text-align:right;font-size:10px;color:#456476}.gpcj-music-foot{margin-top:9px;padding-top:8px;border-top:1px solid #e1eef2;color:#8497a1;font-size:9px;text-align:center}
@media(max-width:640px){.gpcj-music-player{right:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}.gpcj-music-peek{min-height:41px;padding:8px 12px;font-size:12px}.gpcj-music-card{width:min(326px,calc(100vw - 24px));bottom:50px;padding:14px;border-radius:20px}.gpcj-music-controls{grid-template-columns:38px 46px 38px 1fr 45px}.gpcj-music-controls button{height:38px}}
@media(prefers-reduced-motion:reduce){.gpcj-music-player *{animation:none!important;transition:none!important}}


/* v1.3.1 mobile performance guardrails */
.gpcj-music-peek,.gpcj-music-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
@media(max-width:900px){
  /* Route motion and the destination changes remain active. Decorative
     infinite loops are frozen in performance mode to keep scrolling fluid on
     phones, especially Safari. */
  .gpcj-shell.is-performance-mode .gpcj-wave,
  .gpcj-shell.is-performance-mode .gpcj-palm,
  .gpcj-shell.is-performance-mode .gpcj-cloud,
  .gpcj-shell.is-performance-mode .gpcj-rain,
  .gpcj-shell.is-performance-mode .gpcj-beach-sun,
  .gpcj-shell.is-performance-mode .gpcj-bike-wrap,
  .gpcj-shell.is-performance-mode .gpcj-dance-couple{animation:none!important}
  .gpcj-shell.is-performance-mode .gpcj-bike-image{filter:drop-shadow(0 5px 6px rgba(3,31,45,.14))}
  .gpcj-music-player{contain:style;isolation:isolate}
}


/* v1.3.2 mobile audio reliability + status */
.gpcj-music-audio{position:absolute!important;width:1px!important;height:1px!important;opacity:.001!important;pointer-events:none!important;left:-9999px!important}
.gpcj-music-status{min-height:16px;margin-top:8px;color:#5f7b89;font-size:10px;line-height:1.35;text-align:center}
.gpcj-music-status.is-error{color:#a83b32;font-weight:700}
.gpcj-music-controls button,.gpcj-music-peek,.gpcj-music-select{touch-action:manipulation}
@media(max-width:640px){.gpcj-music-status{font-size:10px}.gpcj-music-player{z-index:99990}}


/* v1.3.3 mobile music interaction reliability */
.gpcj-music-player,.gpcj-music-player *{pointer-events:auto}
.gpcj-music-peek,.gpcj-music-controls button,.gpcj-music-close,.gpcj-music-select,.gpcj-music-volume input{-webkit-tap-highlight-color:transparent}
@media(max-width:900px){
  .gpcj-music-player{z-index:999900!important;contain:style!important;isolation:isolate!important;pointer-events:auto!important}
  .gpcj-music-peek{position:relative;z-index:2;min-width:118px;justify-content:center;user-select:none;-webkit-user-select:none}
  .gpcj-music-card{position:fixed!important;left:12px!important;right:12px!important;bottom:calc(70px + env(safe-area-inset-bottom,0px))!important;width:auto!important;max-width:420px!important;margin-left:auto!important;max-height:calc(100dvh - 120px)!important;overflow:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:3;pointer-events:auto!important}
  .gpcj-music-controls button,.gpcj-music-close{min-width:40px;min-height:40px}
  .gpcj-music-volume input{min-height:28px}
  body.gp-mobile-nav-open .gpcj-music-player{display:none!important}
}
@media(max-width:480px){
  .gpcj-music-player{right:10px!important;bottom:calc(12px + env(safe-area-inset-bottom,0px))!important}
  .gpcj-music-card{left:10px!important;right:10px!important;bottom:calc(64px + env(safe-area-inset-bottom,0px))!important;padding:13px!important}
}
