/* ===== FIGMA-MATCHED HERO ===== */
.hero-figma {
  position: relative;
  width: 100vw;
  overflow: hidden;
  background: linear-gradient(180deg, #ffd905 0%, #ffffff 100%);
}
.fig-hero-stage {
  position: relative;
  width: min(100vw, 1920px);
  height: min(959px, 49.948vw);
  margin: 0 auto;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 7%, rgba(255,255,255,0.44), transparent 25%),
    radial-gradient(circle at 86% 16%, rgba(255,255,255,0.25), transparent 22%),
    linear-gradient(180deg, #ffd905 0%, #ffda0a 67%, #fffdf0 100%);
}
.fig-hero-stage::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: radial-gradient(circle at 49% 39%, rgba(255,255,255,0.22), transparent 28%);
  opacity: 0.7;
}
.fig-hero-stage::after {
  content: '';
  position: absolute;
  left: -8%;
  right: -8%;
  bottom: -1px;
  height: 31%;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(169deg, transparent 0 41%, rgba(255,255,255,0.92) 41.4% 100%),
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.86) 75%, #fff 100%);
}
.fig-orbit {
  position: absolute;
  display: block;
  z-index: 2;
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
  -webkit-mask: radial-gradient(
    farthest-side,
    transparent calc(100% - min(15px, 0.78125vw)),
    #000 calc(100% - min(15px, 0.78125vw))
  );
  mask: radial-gradient(
    farthest-side,
    transparent calc(100% - min(15px, 0.78125vw)),
    #000 calc(100% - min(15px, 0.78125vw))
  );
}
.fig-orbit-left {
  left: -6.354167%;
  top: -45.776851%;
  width: 56.354167%;
  background: conic-gradient(
    from 188deg,
    rgba(255,255,255,0) 0 20%,
    rgba(255,255,255,0.94) 43%,
    rgba(255,255,255,0.58) 62%,
    rgba(255,255,255,0) 83% 100%
  );
}
.fig-orbit-right {
  left: 49.479167%;
  top: 38.06048%;
  width: 56.354167%;
  background: conic-gradient(
    from 7deg,
    rgba(255,218,5,0) 0 19%,
    rgba(255,218,5,0.94) 41%,
    rgba(255,218,5,0.64) 61%,
    rgba(255,218,5,0) 83% 100%
  );
}
@media (min-width: 769px) {
  .fig-hero-stage {
    overflow: visible;
    background: transparent;
  }
  .fig-hero-stage::before {
    display: none;
  }
  .fig-hero-stage::after {
    display: none;
  }
  .fig-orbit {
    left: 50%;
    right: auto;
    top: 0;
    bottom: auto;
    width: 100vw;
    height: 100%;
    transform: translateX(-50%);
    aspect-ratio: auto;
    border-radius: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-mask: none;
    mask: none;
  }
  .fig-orbit-left {
    background-image: url("../assets/fig-hero-orbits.svg?v=20260705j");
  }
  .fig-orbit-right {
    display: none;
  }
}
.fig-world-map {
  position: absolute;
  left: 8.385417%;
  top: 0;
  z-index: 1;
  width: 83.229167%;
  height: 97.601668%;
  object-fit: contain;
  opacity: 0.2432;
  mix-blend-mode: screen;
  pointer-events: none;
}
@media (min-width: 769px) {
  .fig-world-map {
    left: 50%;
    width: 83.229167vw;
    transform: translateX(-50%);
    object-fit: fill;
  }
}
.fig-float,
.fig-tag,
.fig-phone,
.fig-story-card,
.fig-hero-copy {
  position: absolute;
  z-index: 2;
}
.fig-phone,
.fig-story-card {
  z-index: 3;
}
.fig-float {
  display: block;
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
}
.fig-float-a { left: 29.791667%; top: 17.984254%; width: 2.916667%; }
.fig-float-b { left: 30.442708%; top: 66.573024%; width: 2.864583%; }
.fig-float-c { left: 62.552083%; top: 29.060804%; width: 2.96875%; }
.fig-float-d { left: 73.776385%; top: 41.494684%; width: 4.270833%; }
.fig-float-e { left: 86.795609%; top: 43.78874%; width: 2.604167%; }

.fig-tag {
  animation: none;
}
.fig-tag-render {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.hero-figma .tag-jp::before,
.hero-figma .tag-jp::after {
  content: "";
  position: absolute;
  z-index: 2;
  border-radius: 50%;
  pointer-events: none;
}
.hero-figma .tag-jp::before {
  left: 31.111111%;
  top: 0;
  width: 22.222222%;
  aspect-ratio: 1;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(222,226,234,0.9);
}
.hero-figma .tag-jp::after {
  left: 37.777778%;
  top: 10%;
  width: 8.888889%;
  aspect-ratio: 1;
  background: #d9262f;
}
.fig-tag-avatar {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 45%;
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
}
.fig-tag-pill {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 64%;
  height: 38%;
  display: inline-flex;
  align-items: center;
  gap: min(7px, 0.365vw);
  padding: 0 min(16px, 0.833vw) 0 min(8px, 0.417vw);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 min(12px, 0.625vw) min(30px, 1.563vw) rgba(0,0,0,0.14);
  color: #3d414f;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: min(16px, 0.833vw);
  font-weight: 400;
  white-space: nowrap;
}
.fig-tag-pill img,
.fig-flag-jp {
  width: min(30px, 1.563vw);
  height: min(30px, 1.563vw);
  border-radius: 50%;
  flex: 0 0 auto;
  object-fit: cover;
}
.fig-flag-jp {
  position: relative;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(222, 226, 234, 0.9);
}
.fig-flag-jp::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 42%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #d9262f;
}
.hero-figma .tag-nz { left: 9.962%; top: 25.538%; width: 10.008%; height: 10.532%; }
.hero-figma .tag-uk { left: 14.759%; top: 69.481%; width: 8.508%; height: 10.219%; }
.hero-figma .tag-ca { left: 70.331%; top: 18.783%; width: 8.996%; height: 10.279%; }
.hero-figma .tag-us { left: 62.552%; top: 53.597%; width: 8.361%; height: 9.176%; }
.hero-figma .tag-it { left: 76.889%; top: 64.844%; width: 9.430%; height: 10.448%; }
.hero-figma .tag-jp { left: 19.435%; top: 43.789%; width: 9.375%; height: 12.513%; }
.hero-figma .tag-jp .fig-tag-avatar { width: 57.8%; }
.hero-figma .tag-jp .fig-tag-pill { height: 36.7%; min-width: 68.9%; }

.fig-phone {
  left: 41.693%;
  top: 13.660%;
  width: 16.615%;
  height: 62.565%;
  overflow: hidden;
  border-radius: 13.4% / 6.55%;
}
.fig-phone-reference {
  position: absolute;
  left: 0;
  top: 0;
  width: 100.4702%;
  height: auto;
  max-width: none;
  z-index: 5;
  pointer-events: none;
}
.fig-phone-nav-crop {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 6;
  width: 100%;
  height: 22%;
  overflow: hidden;
  pointer-events: none;
}
.fig-phone-nav-reference {
  position: absolute;
  left: -67.7116%;
  top: 0;
  width: 235.1097%;
  height: auto;
  max-width: none;
  transform: translateY(-24.7537%);
}
.fig-phone-ui {
  position: absolute;
  left: 3.5544%;
  top: 1.6798%;
  width: 93.205%;
  height: 106.6667%;
  overflow: hidden;
  border-radius: 13.4% / 6.55%;
  background: #fff;
  z-index: 2;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  --phone-copy: clamp(6px, 0.622vw, 11.95px);
  --phone-meta: clamp(5px, 0.533vw, 10.24px);
  --phone-gap: clamp(2px, 0.208vw, 4px);
}
.fig-phone-shell {
  position: absolute;
  left: 0;
  top: 0;
  width: 100.535%;
  height: auto;
  z-index: 4;
  pointer-events: none;
}
.fig-phone-toolbar {
  position: absolute;
  left: 3.2%;
  top: 5.497%;
  width: 93.6%;
  height: 4.997%;
  display: grid;
  grid-template-columns: 6.84% 77.21% 6.84%;
  align-items: center;
  column-gap: 4.555%;
  z-index: 2;
}
.fig-phone-menu,
.fig-phone-menu::before,
.fig-phone-menu::after {
  display: block;
  width: clamp(7px, 0.781vw, 15px);
  height: clamp(1px, 0.104vw, 2px);
  border-radius: 999px;
  background: #1c1e23;
}
.fig-phone-menu {
  position: relative;
}
.fig-phone-menu::before,
.fig-phone-menu::after {
  content: '';
  position: absolute;
  left: 0;
}
.fig-phone-menu::before { top: calc(clamp(3px, 0.313vw, 6px) * -1); }
.fig-phone-menu::after { top: clamp(3px, 0.313vw, 6px); }
.fig-phone-search {
  height: 100%;
  border-radius: clamp(5px, 0.521vw, 10px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(2px, 0.208vw, 4px);
  background: #f4f5f8;
  color: #a4acb9;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: clamp(6px, 0.625vw, 12px);
  line-height: 1;
}
.fig-phone-search::before {
  content: '';
  width: clamp(5px, 0.469vw, 9px);
  aspect-ratio: 1;
  border: clamp(1px, 0.104vw, 2px) solid currentColor;
  border-radius: 50%;
  box-shadow: clamp(2px, 0.208vw, 4px) clamp(2px, 0.208vw, 4px) 0 clamp(-1px, -0.052vw, -0.5px) currentColor;
  opacity: 0.72;
}
.fig-phone-action {
  width: clamp(8px, 0.938vw, 18px);
  aspect-ratio: 1;
  border: clamp(1px, 0.13vw, 2.5px) solid #1c1e23;
  border-radius: 50%;
}
.fig-phone-tabs {
  position: absolute;
  left: 0;
  top: 10.494%;
  width: 100%;
  height: 3.998%;
  display: grid;
  grid-template-columns: repeat(5, 1fr) 0.7fr 0.7fr;
  align-items: center;
  color: #767c8e;
  font-size: var(--phone-copy);
  line-height: 1;
  text-align: center;
}
.fig-phone-tabs .tab-arrow,
.fig-phone-tabs .tab-grid {
  align-self: center;
  justify-self: center;
  position: relative;
  width: 60%;
  aspect-ratio: 1;
}
.fig-phone-tabs .tab-arrow::before {
  content: '';
  position: absolute;
  left: 31%;
  top: 22%;
  width: 42%;
  height: 42%;
  border-right: clamp(1px, 0.104vw, 2px) solid #767c8e;
  border-bottom: clamp(1px, 0.104vw, 2px) solid #767c8e;
  transform: rotate(45deg);
}
.fig-phone-tabs .tab-grid::before {
  content: '';
  position: absolute;
  inset: 10%;
  border-radius: 18%;
  background:
    linear-gradient(90deg, #1c1e23 45%, transparent 45% 55%, #ffd905 55%),
    linear-gradient(#1c1e23 45%, transparent 45% 55%, #ffd905 55%);
  background-blend-mode: normal;
}
.fig-phone-tabs .active {
  position: relative;
  color: #1c1e23;
  font-weight: 600;
}
.fig-phone-tabs .active::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -34%;
  width: 40%;
  height: clamp(1.5px, 0.156vw, 3px);
  transform: translateX(-50%);
  border-radius: 999px;
  background: #ffd905;
}
.phone-post {
  position: absolute;
  width: 48%;
  overflow: hidden;
  color: #1c1e23;
}
.phone-post > img {
  display: block;
  width: 100%;
  object-fit: cover;
}
.phone-post p {
  width: 91.1%;
  margin: clamp(3px, 0.354vw, 6.8px) auto 0;
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: var(--phone-copy);
  font-weight: 400;
  line-height: 1.15;
}
.phone-post div {
  width: 91.1%;
  margin: clamp(4px, 0.417vw, 8px) auto 0;
  display: grid;
  grid-template-columns: clamp(7px, 0.729vw, 14px) 1fr auto;
  align-items: center;
  gap: var(--phone-gap);
  color: #767c8e;
  font-size: var(--phone-meta);
  line-height: 1;
}
.phone-post div img {
  width: clamp(7px, 0.729vw, 14px);
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
}
.phone-post div span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.phone-post div b {
  color: #ffd905;
  font-weight: 400;
}
.post-1 { left: 1.345%; top: 15.493%; width: 48.408%; }
.post-1 > img { aspect-ratio: 180 / 206.5901; }
.post-2 { left: 49.752%; top: 15.493%; width: 48.408%; }
.post-2 > img { aspect-ratio: 180 / 247; }
.post-3 { left: 1.345%; top: 51.174%; width: 48.408%; }
.post-3 > img { aspect-ratio: 180 / 206.5901; }
.post-4 { left: 49.752%; top: 56.222%; width: 48.408%; }
.post-4 > img { aspect-ratio: 180 / 206.5901; }

.fig-story-card {
  left: 36.667%;
  top: 28.467%;
  width: 8.333%;
  height: 26.365%;
  overflow: hidden;
  border-radius: min(10.42px, 0.543vw);
  background: #fff;
  box-shadow:
    min(1.736px, 0.0904vw)
    min(6.944px, 0.3617vw)
    min(33.073px, 1.7226vw)
    rgba(111,88,55,0.36);
  font-family: MiSans, "Noto Sans SC", sans-serif;
  animation: none;
}
.fig-story-card > img {
  display: block;
  width: 100%;
  aspect-ratio: 160 / 183.9;
  object-fit: cover;
}
.fig-story-card p {
  width: 91%;
  margin: min(7px, 0.365vw) auto 0;
  color: #1c1e23;
  font-size: min(12.44px, 0.648vw);
  line-height: 1.16;
}
.fig-story-card div {
  width: 91%;
  margin: min(9px, 0.469vw) auto 0;
  display: grid;
  grid-template-columns: min(14px, 0.729vw) 1fr auto;
  align-items: center;
  gap: min(4px, 0.208vw);
  color: #767c8e;
  font-size: min(10.67px, 0.556vw);
  line-height: 1;
}
.fig-story-card div img {
  width: min(14px, 0.729vw);
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
}
.fig-story-card div span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fig-story-card div b {
  color: #ffd905;
  font-weight: 400;
}
.fig-story-card > .fig-story-reference {
  position: absolute;
  left: -60.625%;
  top: -36.387%;
  width: 223.75%;
  height: auto;
  max-width: none;
  aspect-ratio: auto;
  object-fit: fill;
  pointer-events: none;
}
.fig-hero-copy {
  left: 31.875%;
  top: 72.1%;
  width: 36.25%;
  height: 20.021%;
  text-align: center;
  color: #000;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  z-index: 5;
}
.fig-hero-copy h1 {
  font-size: min(48px, 2.5vw);
  line-height: 1;
  font-weight: 520;
}
.fig-hero-copy p {
  margin-top: min(20px, 1.041667vw);
  color: #767c8e;
  font-size: min(20px, 1.041667vw);
  font-weight: 330;
  line-height: 1;
}
.fig-download-btns {
  margin: min(48px, 2.5vw) auto 0;
  display: flex;
  justify-content: center;
  gap: min(24px, 1.25vw);
}
.fig-dl-btn {
  width: min(240px, 12.5vw);
  height: min(56px, 2.916667vw);
  border-radius: min(10px, 0.520833vw);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: min(12px, 0.625vw);
  background: #000;
  color: #fff;
  font-size: min(16px, 0.833333vw);
  font-weight: 330;
  line-height: 1;
  transition: transform var(--transition), box-shadow var(--transition);
}
.fig-dl-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
.fig-dl-btn svg {
  width: min(20px, 1.041667vw);
  height: min(20px, 1.041667vw);
  flex: 0 0 auto;
}

/* ===== HERO ===== */
.hero {
  position: relative;
  background: linear-gradient(180deg, #ffd600 0%, #ffe15a 68%, #fffdf2 100%);
  overflow: hidden;
  padding: 72px 40px 68px;
  display: flex;
  align-items: center;
  min-height: 720px;
}
.hero-bg {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle, rgba(255,255,255,0.32) 0 2px, transparent 2.5px),
    linear-gradient(168deg, transparent 0 63%, rgba(255,255,255,0.82) 63.2% 100%);
  background-size: 34px 34px, 100% 100%;
  background-position: 0 18px, center;
  opacity: 0.72;
}
.hero-inner {
  position: relative;
  max-width: var(--max-width);
  margin: 0 auto;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  justify-content: center;
  justify-items: center;
  gap: 20px;
}

/* Floating geo tags */
.hero-tag {
  position: absolute;
  background: white;
  color: var(--black);
  font-size: 13px;
  font-weight: 600;
  padding: 8px 16px;
  border-radius: 24px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.13);
  white-space: nowrap;
  animation: float 3.5s ease-in-out infinite;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 6px;
}
.tag-nz { top: 14%; left: 6%; animation-delay: 0s; }
.tag-uk { top: 53%; left: 5%; animation-delay: 0.6s; }
.tag-ca { top: 15%; right: 8%; animation-delay: 1.1s; }
.tag-us { top: 58%; right: 8%; animation-delay: 0.3s; }
.tag-it { bottom: 20%; right: 13%; animation-delay: 0.9s; }
.tag-jp { bottom: 22%; left: 14%; animation-delay: 1.4s; }

/* Phone mockup */
.hero-phone {
  position: relative;
  width: min(760px, 100%);
  height: 460px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.phone-shell {
  position: relative;
  width: 250px;
  height: 500px;
  padding: 14px;
  border: 7px solid #080808;
  border-radius: 44px;
  background: #111;
  box-shadow: 0 34px 70px rgba(0,0,0,0.24), inset 0 0 0 1px rgba(255,255,255,0.16);
  animation: float 4.5s ease-in-out infinite;
  animation-delay: 0.3s;
}
.phone-shell::before,
.phone-shell::after {
  content: '';
  position: absolute;
  left: -11px;
  width: 4px;
  background: #333;
  border-radius: 4px 0 0 4px;
}
.phone-shell::before { top: 112px; height: 50px; }
.phone-shell::after { top: 184px; height: 78px; }
.phone-notch {
  position: absolute;
  top: 19px;
  left: 50%;
  width: 92px;
  height: 28px;
  transform: translateX(-50%);
  border-radius: 18px;
  background: #000;
  z-index: 3;
}
.phone-screen {
  height: 100%;
  overflow: hidden;
  border-radius: 33px;
  background: #fafbff;
  padding: 58px 10px 14px;
}
.phone-topbar {
  display: grid;
  grid-template-columns: 24px 1fr 24px;
  align-items: center;
  gap: 8px;
  margin-bottom: 9px;
}
.phone-menu-line,
.phone-menu-line::before,
.phone-menu-line::after {
  display: block;
  width: 16px;
  height: 2px;
  background: #20242b;
  border-radius: 2px;
}
.phone-menu-line { position: relative; }
.phone-menu-line::before,
.phone-menu-line::after {
  content: '';
  position: absolute;
  left: 0;
}
.phone-menu-line::before { top: -6px; }
.phone-menu-line::after { top: 6px; }
.phone-search {
  height: 28px;
  border-radius: 10px;
  background: #f2f4f9;
  color: #a4acb9;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.phone-action-dot {
  width: 20px;
  height: 20px;
  border: 3px solid #20242b;
  border-radius: 50%;
}
.phone-tabs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  color: #7d8694;
  font-size: 12px;
  margin-bottom: 8px;
}
.phone-tabs span {
  position: relative;
  text-align: center;
  line-height: 22px;
}
.phone-tabs .active {
  color: #111;
  font-weight: 700;
}
.phone-tabs .active::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -2px;
  width: 28px;
  height: 4px;
  transform: translateX(-50%);
  border-radius: 4px;
  background: var(--yellow);
}
.phone-feed {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.phone-feed article {
  min-width: 0;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 8px 18px rgba(34,42,65,0.06);
}
.phone-feed article:nth-child(2n) { transform: translateY(22px); }
.phone-feed img {
  width: 100%;
  height: 100px;
  object-fit: cover;
}
.phone-feed strong,
.phone-feed small {
  display: block;
  padding: 0 8px;
}
.phone-feed strong {
  color: #2e3440;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.45;
  margin-top: 8px;
}
.phone-feed small {
  color: #9aa3b2;
  font-size: 10px;
  margin: 4px 0 10px;
}
.hero-story-card {
  position: absolute;
  left: 98px;
  bottom: 62px;
  width: 240px;
  z-index: 4;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 22px 60px rgba(0,0,0,0.18);
  overflow: hidden;
  padding-bottom: 18px;
}
.hero-story-images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 112px;
}
.hero-story-images img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-story-card p {
  color: #1f232b;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 600;
  padding: 15px 20px 8px;
}
.hero-story-card span {
  display: block;
  color: #8b95a5;
  font-size: 12px;
  padding: 0 20px;
}
.hero-avatar {
  position: absolute;
  z-index: 3;
  border-radius: 50%;
  border: 5px solid #fff;
  overflow: hidden;
  box-shadow: 0 16px 34px rgba(0,0,0,0.18);
  animation: float 4s ease-in-out infinite;
}
.hero-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-avatar-left {
  width: 84px;
  height: 84px;
  left: 118px;
  top: 72px;
}
.hero-avatar-right {
  width: 74px;
  height: 74px;
  right: 126px;
  top: 58px;
  animation-delay: 0.4s;
}
.hero-avatar-bottom-left {
  width: 70px;
  height: 70px;
  left: 90px;
  bottom: 78px;
  animation-delay: 0.8s;
}
.hero-avatar-bottom-right {
  width: 72px;
  height: 72px;
  right: 136px;
  bottom: 92px;
  animation-delay: 1.1s;
}

/* Hero text */
.hero-text {
  max-width: 720px;
  z-index: 2;
  text-align: center;
  margin-top: -8px;
}
.hero-text h1 {
  font-size: clamp(34px, 4.3vw, 58px);
  font-weight: 800;
  color: var(--black);
  line-height: 1.15;
  margin-bottom: 14px;
  letter-spacing: 0;
}
.hero-text > p {
  font-size: clamp(16px, 2vw, 24px);
  color: #778195;
  margin-bottom: 28px;
  line-height: 1.6;
}
.hero-download-btns {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: center;
}
.dl-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 15px 34px;
  border-radius: 18px;
  font-size: 16px;
  font-weight: 700;
  transition: transform var(--transition), box-shadow var(--transition);
}
.dl-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.15); }
.dl-btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.dl-ios     { background: var(--black); color: var(--white); }
.dl-android { background: var(--black); color: var(--white); }

/* ===== MAP SECTION ===== */
.map-section {
  width: 100vw;
  padding: 0;
  background: #000;
  overflow: hidden;
}
.map-stage {
  position: relative;
  width: min(100vw, 1920px);
  height: min(44.270833vw, 850px);
  margin: 0 auto;
  overflow: hidden;
  background: #000;
}
.map-text {
  position: absolute;
  z-index: 3;
  left: 8.333333%;
  top: min(13.385417vw, 257px);
  width: 37.604167%;
}
.map-text h2 {
  display: flex;
  flex-direction: column;
  margin: 0;
  color: #fff;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: clamp(19px, 2.5vw, 48px);
  font-weight: 520;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.map-text h2 span + span {
  margin-top: min(1.25vw, 24px);
}
.map-text h2 strong {
  color: #ffd905;
  font: inherit;
}
.map-notes {
  display: flex;
  flex-direction: column;
  gap: min(1.666667vw, 32px);
  margin-top: min(4.166667vw, 80px);
}
.map-notes p {
  margin: 0;
  color: rgba(255,255,255,0.6);
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: clamp(10px, 1.25vw, 24px);
  font-weight: 330;
  line-height: 1;
  white-space: nowrap;
}
.map-globe {
  position: absolute;
  z-index: 1;
  left: 44.0625%;
  top: min(5.78125vw, 111px);
  width: min(53.020833vw, 1018px);
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
}
.map-globe-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.map-pin {
  position: absolute;
  z-index: 2;
  width: min(0.729167vw, 14px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.pin-dot,
.pin-pulse {
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.pin-dot {
  z-index: 2;
  width: 100%;
  height: 100%;
  border: min(0.104167vw, 2px) solid rgba(255,255,255,0.95);
  background: #ffd905;
  box-shadow:
    0 0 min(0.520833vw, 10px) rgba(255,217,5,0.9),
    0 0 min(1.25vw, 24px) rgba(255,217,5,0.45);
}
.pin-pulse {
  z-index: 1;
  width: 220%;
  height: 220%;
  border: min(0.104167vw, 2px) solid #ffd905;
  opacity: 0;
  animation: map-pin-pulse 2.4s ease-out infinite;
}
.pin-pulse::after {
  content: "";
  position: absolute;
  inset: -1px;
  border: inherit;
  border-radius: inherit;
  animation: map-pin-pulse-inner 2.4s ease-out 1.2s infinite;
}
.map-pin:nth-child(3n + 1) .pin-pulse { animation-delay: 0.4s; }
.map-pin:nth-child(3n + 2) .pin-pulse { animation-delay: 0.8s; }
@keyframes map-pin-pulse {
  0% { opacity: 0.85; transform: translate(-50%, -50%) scale(0.55); }
  75%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(2.15); }
}
@keyframes map-pin-pulse-inner {
  0% { opacity: 0.65; transform: scale(0.45); }
  75%, 100% { opacity: 0; transform: scale(1.55); }
}
.map-pins .pin-1  { left: 83.75%; top: min(24.791667vw, 476px); }
.map-pins .pin-2  { left: 52.34375%; top: min(10.989583vw, 211px); }
.map-pins .pin-3  { left: 90.9375%; top: min(27.760417vw, 533px); }
.map-pins .pin-4  { left: 85.208333%; top: min(17.447917vw, 335px); }
.map-pins .pin-5  { left: 83.125%; top: min(10.78125vw, 207px); }
.map-pins .pin-6  { left: 63.541667%; top: min(31.71875vw, 609px); }
.map-pins .pin-7  { left: 64.010417%; top: min(12.447917vw, 239px); }
.map-pins .pin-8  { left: 76.25%; top: min(21.40625vw, 411px); }
.map-pins .pin-9  { left: 46.614583%; top: min(38.59375vw, 741px); }
.map-pins .pin-10 { left: 85.46875%; top: min(33.697917vw, 647px); }
.map-pins .pin-11 { left: 91.354167%; top: min(37.447917vw, 719px); }
.map-pins .pin-12 { left: 91.145833%; top: min(21.40625vw, 411px); }
.map-pins .pin-13 { left: 45%; top: min(24.010417vw, 461px); }
.map-pins .pin-14 { left: 51.458333%; top: min(21.197917vw, 407px); }
.map-pins .pin-15 { left: 56.458333%; top: min(14.739583vw, 283px); }

/* ===== SERVICE SECTION ===== */
.service-section {
  width: 100vw;
  padding: 0;
  background: #fff;
  overflow: hidden;
}
.service-stage {
  isolation: isolate;
  position: relative;
  width: 100vw;
  height: 71.145833vw;
  margin: 0 auto;
  overflow: hidden;
  max-height: none;
  background: #fff;
}
.service-stage::before,
.service-stage::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.service-stage::before {
  z-index: 0;
  left: -46.614583vw;
  top: -20.104167vw;
  width: 147.291667vw;
  height: 91.25vw;
  background: url("../assets/fig-service-bg-warm.png?v=20260704a") center / cover no-repeat;
  opacity: 0.19;
}
.service-stage::after {
  display: none;
}
.service-orb {
  position: absolute;
  z-index: 1;
  left: 20.125529%;
  top: 7.365113vw;
  width: 59.749%;
  aspect-ratio: 1;
  overflow: visible;
  pointer-events: none;
  --service-rings: radial-gradient(circle closest-side at 50% 50%,
    transparent 0 27.030772%,
    rgba(0,0,0,.73) 27.030772% 27.553794%,
    transparent 27.553794% 36.604522%,
    rgba(0,0,0,.63) 36.604522% 37.127544%,
    transparent 37.127544% 46.321266%,
    rgba(0,0,0,.53) 46.321266% 46.844286%,
    transparent 46.844286% 55.895014%,
    rgba(0,0,0,.44) 55.895014% 56.418036%,
    transparent 56.418036% 65.6116%,
    rgba(0,0,0,.35) 65.6116% 66.134622%,
    transparent 66.134622% 76.04274%,
    rgba(0,0,0,.24) 76.04274% 76.56576%,
    transparent 76.56576% 87.33111%,
    rgba(0,0,0,.12) 87.33111% 87.85413%,
    transparent 87.85413% 99.476886%,
    rgba(0,0,0,.025) 99.476886% 99.999908%,
    transparent 99.999908%);
  -webkit-mask-image: var(--service-rings);
  mask-image: var(--service-rings);
}
.service-orb::before {
  content: "";
  position: absolute;
  left: -2.30218%;
  top: -8.40425%;
  width: 104.6036%;
  height: 104.6036%;
  background: url("../assets/fig-service-orb.png?v=20260704a") center / cover no-repeat;
  filter: blur(min(0.208333vw, 4px));
}
.service-dot {
  position: absolute;
  z-index: 2;
  display: block;
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
}
.dot-yellow {
  left: 70.208333%;
  top: 29.53125vw;
  width: 3.125vw;
  background: #ffef91;
}
.dot-green {
  left: 29.635417%;
  top: 38.958333vw;
  width: 1.875vw;
  background: #e5f5d0;
}
.dot-blue {
  left: 44.947917%;
  top: 14.21875vw;
  width: 1.145833vw;
  background: #d0ecf5;
}
.dot-purple {
  left: 45.416667%;
  top: 55.885417vw;
  width: 1.145833vw;
  background: #eedcff;
}
.service-center {
  position: absolute;
  z-index: 4;
  left: 31.822917%;
  top: min(34.739583vw, 667px);
  width: 36.40625%;
  text-align: center;
}
.service-center h2 {
  margin: 0;
  color: #000;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: clamp(19px, 2.5vw, 48px);
  font-weight: 520;
  line-height: 1;
}
.service-center p {
  margin: min(1.25vw, 24px) auto 0;
  color: #767c8e;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: clamp(10px, 1.25vw, 24px);
  font-weight: 330;
  line-height: 1;
  white-space: nowrap;
}
.service-decor,
.story-image,
.story-copy {
  position: absolute;
  z-index: 3;
}
.service-decor,
.story-image {
  object-fit: cover;
  border-radius: min(1.041667vw, 20px);
}
.service-story {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}
.story-copy {
  display: flex;
  align-items: center;
  gap: min(0.5vw, 9.6px);
  height: min(3.25vw, 62.4px);
  padding: min(0.5vw, 9.6px);
  border: 1px solid rgba(255,255,255,0.96);
  border-radius: min(0.833333vw, 16px);
  background: rgba(255,255,255,0.94);
  box-shadow: 0 min(0.625vw, 12px) min(1.875vw, 36px) rgba(83,95,132,0.16);
  backdrop-filter: blur(min(0.625vw, 12px));
  -webkit-backdrop-filter: blur(min(0.625vw, 12px));
}
.story-copy > img {
  width: min(2.25vw, 43.2px);
  aspect-ratio: 1;
  flex: 0 0 auto;
  border-radius: 50%;
  object-fit: cover;
}
.story-copy > div {
  min-width: 0;
  overflow: hidden;
  padding-top: min(0.078125vw, 1.5px);
}
.story-copy h3,
.story-copy p {
  margin: 0;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  line-height: 1;
  white-space: nowrap;
}
.story-copy h3 {
  overflow: hidden;
  text-overflow: ellipsis;
  color: #1c1e23;
  font-size: clamp(8px, 1vw, 19.2px);
  font-weight: 330;
}
.story-copy p {
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: min(0.375vw, 7.2px);
  color: #767c8e;
  font-size: clamp(6px, 0.75vw, 14.4px);
  font-weight: 330;
}
.story-living .story-image {
  left: 18.072917%;
  top: min(10.833333vw, 208px);
  width: min(12.552083vw, 241px);
  height: min(15.104167vw, 290px);
}
.story-living .story-copy {
  left: 24.791667%;
  top: min(16.291667vw, 312.8px);
  width: min(16.40625vw, 315px);
}
.story-paris .story-image {
  left: 60.572917%;
  top: min(8.697917vw, 167px);
  width: min(12.552083vw, 241px);
  height: min(16.666667vw, 320px);
}
.story-paris .story-copy {
  left: 53.697917%;
  top: min(11.395833vw, 218.8px);
  width: min(16.6875vw, 320.4px);
}
.story-ski .story-image {
  left: 22.645833%;
  top: min(45.260417vw, 869px);
  width: min(15.625vw, 300px);
  height: min(16.875vw, 324px);
}
.story-ski .story-copy {
  left: 14.510417%;
  top: min(50.354167vw, 966.8px);
  width: min(18.020833vw, 346px);
}
.story-bike .story-image {
  left: 60.677083%;
  top: min(47.65625vw, 915px);
  width: min(15.625vw, 300px);
  height: min(19.114583vw, 367px);
}
.story-bike .story-copy {
  left: 68.885417%;
  top: min(54.572917vw, 1047.8px);
  width: min(15.416667vw, 296px);
}
.story-drive .story-copy {
  left: 6.106771%;
  top: min(33.685521vw, 646.76px);
  width: min(15.117188vw, 290.25px);
}
.story-sydney .story-copy {
  left: 80.091146%;
  top: min(42.31901vw, 812.53px);
  width: min(14.648438vw, 281.25px);
}
.decor-bedroom {
  left: 77.5625%;
  top: min(25.104167vw, 482px);
  width: min(10.052083vw, 193px);
  height: min(11.822917vw, 227px);
}
.decor-office {
  left: 40.052083%;
  top: min(22.65625vw, 435px);
  width: min(8.333333vw, 160px);
  height: min(5.46875vw, 105px);
}
.decor-car {
  left: 48.385417%;
  top: min(50.104167vw, 962px);
  width: min(6.5625vw, 126px);
  height: min(4.427083vw, 85px);
}

/* ===== FEATURES SECTION ===== */
.features-section {
  width: 100vw;
  overflow: hidden;
  background: #fff;
}
.features-stage {
  position: relative;
  width: min(100vw, 1920px);
  height: min(61.666667vw, 1184px);
  margin: 0 auto;
  background: #fff;
}
.features-head {
  position: absolute;
  left: 27.526042%;
  top: min(6.041667vw, 116px);
  width: 45%;
  text-align: center;
}
.features-head h2 {
  display: flex;
  align-items: baseline;
  justify-content: center;
  margin: 0;
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: clamp(19px, 2.5vw, 48px);
  font-weight: 520;
  line-height: 1;
  white-space: nowrap;
}
.features-head-lead::after {
  content: "，";
}
.features-head strong {
  color: #ffd905;
  font: inherit;
}
.features-head > p {
  margin: min(1.25vw, 24px) 0 0;
  color: #767c8e;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: clamp(10px, 1.25vw, 24px);
  font-weight: 330;
  line-height: 1;
}
.features-download {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(12.5vw, 240px);
  height: min(2.916667vw, 56px);
  margin: min(1.25vw, 24px) auto 0;
  border-radius: min(0.520833vw, 10px);
  background: #ffd905;
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: min(16px, 0.833333vw);
  font-weight: 330;
  line-height: 1;
}
.features-grid {
  position: absolute;
  left: 12.708333%;
  top: min(18.541667vw, 356px);
  width: 74.583333%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: min(1.666667vw, 32px);
}
.feature-card {
  container-type: inline-size;
  position: relative;
  min-width: 0;
  aspect-ratio: 700 / 358;
  overflow: hidden;
  border-radius: 2.857143cqw;
  background: #eef1fa;
}
.feature-card-render {
  position: absolute;
  display: block;
  max-width: none;
  height: auto;
  pointer-events: none;
  user-select: none;
}
.feature-hotspot .feature-card-render {
  left: -3.571429%;
  top: -22.067039%;
  width: 108.071429%;
}
.feature-return .feature-card-render {
  left: 0;
  top: -6.703911%;
  width: 148.857143%;
}
.feature-school .feature-card-render {
  left: 0;
  top: -26.536313%;
  width: 138%;
}
.feature-visa .feature-card-render {
  left: 0;
  top: 0;
  width: 112.285714%;
}
.feature-card-copy {
  position: absolute;
  z-index: 10;
  left: 5.714286cqw;
  top: 5.714286cqw;
  padding: 1.142857cqw 1.714286cqw 1.428571cqw;
  border-radius: 2cqw;
  background: rgba(238,241,250,0.92);
  box-shadow: 0 1.142857cqw 3.428571cqw rgba(90,101,132,0.08);
  backdrop-filter: blur(0.857143cqw);
  -webkit-backdrop-filter: blur(0.857143cqw);
}
.feature-card-copy h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18.571429cqw;
  height: 5.714286cqw;
  margin: 0;
  border-radius: 5.285714cqw;
  background: #000;
  color: #fff;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: 3.428571cqw;
  font-weight: 600;
  line-height: 1;
}
.feature-card-copy p {
  width: 59.714286cqw;
  margin: 2.857143cqw 0 0;
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: 2.571429cqw;
  font-weight: 600;
  line-height: 1;
}
.feature-school .feature-card-copy p {
  width: 41.857143cqw;
  line-height: 1.5;
}

.news-tile {
  position: absolute;
  overflow: hidden;
  border-radius: 1.071429cqw;
  background: #fff;
  opacity: 0.6;
}
.news-tile > img {
  width: 100%;
  height: 70.3%;
  object-fit: cover;
}
.news-copy {
  padding: 1.035714cqw;
}
.news-copy b,
.news-copy small {
  display: block;
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  line-height: 1.25;
}
.news-copy b {
  overflow: hidden;
  max-height: 3em;
  font-size: 1.2cqw;
  font-weight: 500;
}
.news-copy small {
  margin-top: 0.714286cqw;
  color: #767c8e;
  font-size: 0.994286cqw;
  white-space: nowrap;
}
.news-a { left: 31.428571cqw; top: 35.085714cqw; width: 26.207378cqw; height: 23.82489cqw; }
.news-b { left: 70.428571cqw; top: -5.45622cqw; width: 27.196337cqw; height: 24.723943cqw; }
.news-c { left: 3.74437cqw; top: 26.71426cqw; width: 27.196337cqw; height: 24.723943cqw; }
.news-d { left: 58.857104cqw; top: 30.163888cqw; width: 34.613519cqw; height: 31.466836cqw; }

.jobs-cloud {
  position: absolute;
  left: 0;
  top: 31.548974cqw;
  width: 135.142857cqw;
  height: 70.928449cqw;
  opacity: 0.5;
}
.job-card {
  position: absolute;
  width: 44.076372cqw;
  height: 16.639457cqw;
  padding: 1.870615cqw;
  overflow: hidden;
  border: 0.145687cqw solid rgba(255,255,255,0.7);
  border-radius: 1.870615cqw;
  background: rgba(255,255,255,0.43);
}
.job-card b,
.job-card p,
.job-card small {
  display: block;
  margin: 0;
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  line-height: 1;
}
.job-card b { font-size: 2.338269cqw; font-weight: 500; }
.job-card p {
  overflow: hidden;
  height: 4.910365cqw;
  margin-top: 1.169176cqw;
  font-size: 1.636788cqw;
  line-height: 1.5;
}
.job-card small { margin-top: 1.169176cqw; font-size: 1.870615cqw; }
.job-1 { left: 22.766621cqw; top: 0; }
.job-2 { left: 68.299881cqw; top: 0; }
.job-3 { left: -11.655003cqw; top: 18.096331cqw; }
.job-4 { left: 33.878234cqw; top: 18.096331cqw; }
.job-5 { left: 79.411477cqw; top: 18.096331cqw; }

.rank-cloud {
  position: absolute;
  left: 6.766291cqw;
  top: 27.142857cqw;
  width: 126.440961cqw;
  height: 35.428571cqw;
  display: flex;
  align-content: flex-start;
  flex-wrap: wrap;
  gap: 1.714286cqw 1.428571cqw;
  overflow: hidden;
  opacity: 0.61;
}
.rank-cloud span {
  display: flex;
  align-items: center;
  height: 5.714286cqw;
  padding: 0 1.834274cqw;
  border-radius: 1.714286cqw;
  background: rgba(255,255,255,0.43);
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: 2cqw;
  white-space: nowrap;
}
.rank-cloud span::before {
  content: "";
  width: 2.857143cqw;
  height: 2.857143cqw;
  margin-right: 1.714286cqw;
  border-radius: 0.571429cqw;
  background: #1c1e23;
}
.school-phone {
  position: absolute;
  width: 45.924604cqw;
  height: 100.857143cqw;
  border-radius: 2.857143cqw;
  object-fit: cover;
  object-position: top;
}
.school-phone-back {
  left: 24.857143cqw;
  top: 28.571429cqw;
}
.school-phone-front {
  left: 56.428571cqw;
  top: 22.857143cqw;
  box-shadow: -2.571429cqw 1.857143cqw 7.171429cqw rgba(135,140,154,0.28);
}

.visa-node {
  position: absolute;
  width: 32.285714cqw;
  height: 18.714286cqw;
}
.visa-node span {
  position: absolute;
  left: 0;
  top: 5.714286cqw;
  display: flex;
  align-items: center;
  width: 31.428571cqw;
  height: 9.142857cqw;
  padding-left: 3.428571cqw;
  border: 0.142857cqw solid rgba(255,255,255,0.72);
  border-radius: 1.714286cqw;
  background: rgba(255,255,255,0.43);
  color: #1c1e23;
  font-family: MiSans, "Noto Sans SC", sans-serif;
  font-size: 2.857143cqw;
}
.visa-node img {
  position: absolute;
  z-index: 2;
  right: 0;
  top: 0;
  width: 17cqw;
  height: 17cqw;
  object-fit: contain;
}
.visa-news { left: 53.285714cqw; top: 21.142857cqw; }
.visa-type { left: 72.714286cqw; top: 29.714286cqw; }
.visa-service { left: 4cqw; top: 29.571429cqw; }
.visa-material { left: 39cqw; top: 38.142857cqw; }

/* ===== JOIN CTA ===== */
.join-cta { background: var(--gray-light); }
.join-cta-box {
  background: var(--dark);
  border-radius: var(--radius-xl);
  padding: 60px 40px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.join-cta-box::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(255,214,0,0.12) 0%, transparent 70%);
  border-radius: 50%;
}
.join-cta-box h2 {
  color: var(--white);
  margin-bottom: 24px;
  font-size: min(48px, 2.5vw);
  font-weight: 520;
  line-height: 1;
}
.join-cta-box p {
  color: rgba(255,255,255,0.55);
  margin-bottom: 32px;
  font-size: min(24px, 1.25vw);
  font-weight: 330;
  line-height: 1;
}
.join-cta-box .btn-primary {
  font-size: min(16px, 0.833333vw);
  font-weight: 330;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .hero-tag { display: none; }
  .hero-inner { gap: 40px; }
}
@media (max-width: 768px) {
  .fig-hero-stage {
    height: 121.6vw;
    max-height: none;
    background: linear-gradient(180deg, #ffd905 0%, #ffffff 87.719298%, #ffffff 100%);
  }
  .fig-hero-stage::before {
    display: none;
  }
  .fig-hero-stage::after {
    display: none;
  }
  .fig-orbit {
    left: 0;
    right: auto;
    top: 0;
    width: 100%;
    height: 100%;
    transform: none;
    aspect-ratio: auto;
    border-radius: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-mask: none;
    mask: none;
  }
  .fig-orbit-left {
    background-image: url("../assets/fig-hero-orbits.svg?v=20260705k");
  }
  .fig-orbit-right {
    display: none;
  }
  .fig-world-map {
    left: -56.533333%;
    top: 0;
    width: 213.066667%;
    height: 102.631579%;
    transform: none;
    object-fit: contain;
  }
  .fig-float {
    width: auto;
  }
  .fig-float-a { left: 3.6%; top: 33.881579%; width: 7.466667vw; }
  .fig-float-b { left: -12.533333%; top: 66.447368%; width: 7.333333vw; }
  .fig-float-c { left: 73.866667%; top: 7.127193%; width: 7.6vw; }
  .fig-float-d { left: 117.2%; top: 51.754386%; width: 10.933333vw; }
  .fig-float-e { left: 153.2%; top: 40.02193%; width: 6.666667vw; }

  .fig-tag-pill {
    gap: 0.933vw;
    padding: 0 2.133vw 0 1.067vw;
    box-shadow: 0 1.6vw 4vw rgba(0,0,0,0.14);
    font-size: 2.133vw;
  }
  .fig-tag-pill img,
  .fig-flag-jp {
    width: 4vw;
    height: 4vw;
  }
  .hero-figma .tag-nz { left: -53.867%; top: 23.684%; width: 23.794%; height: 11.075%; }
  .hero-figma .tag-uk { left: 16.133%; top: 7.127%; width: 21.830%; height: 10.746%; }
  .hero-figma .tag-ca { left: 77.600%; top: 30.921%; width: 19.410%; height: 9.116%; }
  .hero-figma .tag-us { left: 76.533%; top: 55.921%; width: 19.915%; height: 9.649%; }
  .hero-figma .tag-it { left: 134.267%; top: 75.439%; width: 22.267%; height: 10.987%; }
  .hero-figma .tag-jp { left: 7.333%; top: 61.513%; width: 20.800%; height: 10.526%; }

  .fig-phone {
    left: 28.800%;
    top: 14.364%;
    width: 42.533%;
    height: 65.789%;
  }
  .fig-phone-tabs {
    font-size: 1.593vw;
  }
  .fig-phone-tabs .active::after {
    height: 0.4vw;
  }
  .phone-post p {
    margin-top: 0.907vw;
    font-size: 1.593vw;
  }
  .phone-post div {
    margin-top: 1.067vw;
    grid-template-columns: 1.867vw 1fr auto;
    gap: 0.533vw;
    font-size: 1.365vw;
  }
  .phone-post div img {
    width: 1.867vw;
  }

  .fig-story-card {
    left: 15.867%;
    top: 29.934%;
    width: 21.333%;
    height: 27.723%;
    border-radius: 1.389vw;
  }
  .fig-story-card p {
    margin-top: 0.933vw;
    font-size: 1.659vw;
  }
  .fig-story-card div {
    margin-top: 1.2vw;
    grid-template-columns: 1.867vw 1fr auto;
    gap: 0.533vw;
    font-size: 1.422vw;
  }
  .fig-story-card div img {
    width: 1.867vw;
  }

  .fig-hero-copy {
    left: 3.600%;
    top: 75.877%;
    width: 92.800%;
    height: 24.123%;
  }
  .fig-hero-copy h1 {
    font-size: 6.4vw;
  }
  .fig-hero-copy p {
    margin-top: 2.666667vw;
    font-size: 3.2vw;
  }
  .fig-download-btns {
    margin-top: 6.4vw;
    gap: 3.2vw;
  }
  .fig-dl-btn {
    width: 40vw;
    height: 10.666667vw;
    border-radius: 2.133333vw;
    gap: 1.6vw;
    font-size: 3.2vw;
  }
  .fig-dl-btn svg {
    width: 4.266667vw;
    height: 4.266667vw;
  }

  .hero {
    padding: 34px 0 48px;
    min-height: 650px;
  }
  .hero-bg {
    background-size: 26px 26px, 100% 100%;
    background-position: -6px 10px, center;
  }
  .hero-inner {
    gap: 10px;
    text-align: center;
  }
  .hero-phone {
    width: 100%;
    height: 420px;
  }
  .phone-shell {
    width: 214px;
    height: 428px;
    border-width: 6px;
    border-radius: 38px;
    padding: 12px;
  }
  .phone-notch {
    top: 17px;
    width: 78px;
    height: 24px;
  }
  .phone-screen {
    border-radius: 28px;
    padding: 50px 9px 12px;
  }
  .phone-feed img { height: 78px; }
  .phone-feed strong { font-size: 10px; }
  .hero-story-card {
    left: 22px;
    bottom: 34px;
    width: 190px;
    border-radius: 16px;
    padding-bottom: 12px;
  }
  .hero-story-images { height: 90px; }
  .hero-story-card p {
    font-size: 12px;
    padding: 10px 12px 4px;
  }
  .hero-story-card span {
    font-size: 10px;
    padding: 0 12px;
  }
  .hero-avatar { border-width: 4px; }
  .hero-avatar-left {
    width: 64px;
    height: 64px;
    left: 74px;
    top: 22px;
  }
  .hero-avatar-right {
    width: 56px;
    height: 56px;
    right: 58px;
    top: 28px;
  }
  .hero-avatar-bottom-left {
    width: 58px;
    height: 58px;
    left: 48px;
    bottom: 18px;
  }
  .hero-avatar-bottom-right {
    width: 58px;
    height: 58px;
    right: 42px;
    bottom: 70px;
  }
  .hero-text {
    max-width: 100%;
    padding: 0 20px;
    margin-top: 0;
  }
  .hero-text h1 { font-size: 32px; }
  .hero-text > p {
    font-size: 16px;
    margin-bottom: 22px;
  }
  .hero-download-btns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .dl-btn {
    justify-content: center;
    min-height: 58px;
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 15px;
  }

  .map-stage {
    width: 100%;
    height: 123.2vw;
    max-height: none;
  }
  .map-section {
    margin-top: 13.333333vw;
  }
  .map-text {
    left: 10%;
    top: 16vw;
    width: 80%;
    text-align: center;
  }
  .map-text h2 {
    align-items: center;
    font-size: 5.333333vw;
  }
  .map-text h2 span + span {
    margin-top: 3.2vw;
  }
  .map-notes {
    gap: 4.266667vw;
    margin-top: 5.333333vw;
    align-items: center;
  }
  .map-notes p {
    font-size: 3.2vw;
  }
  .map-globe {
    left: -0.666667%;
    top: 66.533333vw;
    width: 101.333333vw;
  }
  .map-pin {
    width: 2.133333vw;
  }
  .map-pins .pin-1  { left: 75.184017%; top: 102.866016vw; }
  .map-pins .pin-2  { left: 15.160445%; top: 76.4875vw; }
  .map-pins .pin-3  { left: 88.92076%; top: 108.539876vw; }
  .map-pins .pin-4  { left: 77.971183%; top: 88.830648vw; }
  .map-pins .pin-5  { left: 73.989518%; top: 76.089323vw; }
  .map-pins .pin-6  { left: 36.561885%; top: 116.105045vw; }
  .map-pins .pin-7  { left: 37.45776%; top: 79.274658vw; }
  .map-pins .pin-8  { left: 60.850033%; top: 96.395809vw; }
  .map-pins .pin-9  { left: 4.210871%; top: 129.244531vw; }
  .map-pins .pin-10 { left: 76.666667%; top: 114.4vw; }
  .map-pins .pin-11 { left: 89.71709%; top: 127.054622vw; }
  .map-pins .pin-12 { left: 89.318929%; top: 96.395809vw; }
  .map-pins .pin-13 { left: 1.125082%; top: 101.372884vw; }
  .map-pins .pin-14 { left: 13.468238%; top: 95.99764vw; }
  .map-pins .pin-15 { left: 23.024231%; top: 83.654492vw; }

  .service-stage {
    width: 100%;
    height: 148.533333vw;
    max-height: none;
  }
  .service-stage::before {
    left: -222.133333vw;
    top: -51.466667vw;
    right: auto;
    bottom: auto;
    width: 377.066667vw;
    height: 233.6vw;
  }
  .service-orb {
    left: -3.474259%;
    top: 24.866732vw;
    width: 107.333333vw;
  }
  .dot-yellow {
    left: 86.59948%;
    top: 61.256881vw;
    width: 2.873315vw;
  }
  .dot-green {
    left: 9.167166%;
    top: 87.119999vw;
    width: 2.862222vw;
  }
  .dot-blue {
    left: 41.333333%;
    top: 52.8vw;
    width: 2.623704vw;
  }
  .dot-purple {
    left: 62.933333%;
    top: 109.466667vw;
    width: 2.623704vw;
  }
  .service-center {
    left: 5.733333%;
    top: 72.133333vw;
    width: 93.2%;
  }
  .service-center h2 {
    font-size: 5.333333vw;
  }
  .service-center p {
    margin-top: 3.2vw;
    font-size: 3.2vw;
  }
  .service-decor,
  .story-image {
    border-radius: 2.666667vw;
  }
  .story-copy {
    gap: 1.28vw;
    height: 8.32vw;
    padding: 1.28vw;
    border-radius: 2.133333vw;
    box-shadow: 0 1.6vw 5.333333vw rgba(83,95,132,0.18);
    backdrop-filter: blur(1.6vw);
    -webkit-backdrop-filter: blur(1.6vw);
  }
  .story-copy > img {
    width: 5.76vw;
  }
  .story-copy > div {
    padding-top: 0.2vw;
  }
  .story-copy h3 {
    font-size: 2.56vw;
  }
  .story-copy p {
    margin-top: 0.96vw;
    font-size: 1.92vw;
  }
  .story-living .story-image {
    display: none;
  }
  .story-living .story-copy {
    left: 3.866667%;
    top: 32.533333vw;
    width: 42%;
  }
  .story-paris .story-image {
    left: 68.533333%;
    top: 13.333333vw;
    width: 26.133333vw;
    height: 34.8vw;
  }
  .story-paris .story-copy {
    left: 52.4%;
    top: 45.733333vw;
    width: 42.72%;
  }
  .story-ski .story-image {
    left: 9.306673%;
    top: 102.933333vw;
    width: 28.4vw;
    height: 30.8vw;
  }
  .story-ski .story-copy {
    left: 6.266667%;
    top: 97.066667vw;
    width: 46.133333%;
  }
  .story-bike .story-image {
    left: 63.030631%;
    top: 122.932424vw;
    width: 31.278379vw;
    height: 38.327026vw;
  }
  .story-bike .story-copy {
    left: 48.933333%;
    top: 116.911711vw;
    width: 43.466667%;
    height: 9.163243vw;
  }
  .story-bike .story-copy > img {
    width: 6.343784vw;
  }
  .story-bike .story-copy h3 {
    font-size: 2.81946vw;
  }
  .story-bike .story-copy p {
    font-size: 2.114595vw;
  }
  .story-drive {
    display: none;
  }
  .story-sydney .story-copy {
    left: 67.066667%;
    top: 95.466667vw;
    width: 37.5%;
  }
  .decor-bedroom {
    left: 21.6%;
    top: 9.333333vw;
    width: 9.6vw;
    height: 11.333333vw;
  }
  .decor-office {
    left: 12.4%;
    top: 54.4vw;
    width: 14.933333vw;
    height: 9.733333vw;
  }
  .decor-car {
    display: none;
  }

  .features-stage {
    width: 100%;
    height: 254.4vw;
    max-height: none;
  }
  .features-head {
    left: 23.333333%;
    top: 13.333333vw;
    width: 53.333333%;
  }
  .features-head h2 {
    flex-direction: column;
    font-size: 5.333333vw;
    line-height: 1.5;
  }
  .features-head-lead::after {
    content: "";
  }
  .features-head > p {
    margin-top: 3.2vw;
    font-size: 3.2vw;
  }
  .features-download {
    width: 32vw;
    height: 8.533333vw;
    margin-top: 3.2vw;
    border-radius: 2.133333vw;
    font-size: 3.2vw;
  }
  .features-grid {
    left: 3.333333%;
    top: 53.866667vw;
    width: 93.333333%;
    grid-template-columns: 1fr;
    gap: 3.2vw;
  }
  .feature-return .feature-card-copy p,
  .feature-school .feature-card-copy p,
  .feature-visa .feature-card-copy p {
    font-size: 3.142857cqw;
  }
  .school-phone-back {
    top: 30.285714cqw;
  }
  .visa-news {
    left: 59.571429cqw;
  }

  .join-cta-box { padding: 40px 24px; }
}
@media (max-width: 480px) {
  .hero { min-height: 620px; }
  .hero-tag { display: none; }
}
