
:root {
  --gs-purple:  #4B44CC;
  --gs-purple2: #6C63FF;
  --gs-blue:    #2F6FE0;
  --gs-deep:    #FFFFFF;
  --gs-navy:    #F4F4F8;
  --gs-surface: #EEEEF5;
  --gs-card:    #F8F8FC;
  --gs-border:  rgba(75,68,204,0.15);
  --gs-white:   #1A1A2E;
  --gs-muted:   #5A6380;
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

html, body {
  background:var(--gs-deep) !important;
  color:var(--gs-white) !important;
  font-family:'DM Sans',sans-serif !important;
  touch-action: manipulation;
  overflow-x:hidden; width:100%;
}

#masthead,#colophon,.site-header,.site-footer,
.ast-above-header,.ast-below-header,
.ast-primary-header-bar { display:none !important; }

#page,#content,.site,.ast-container,
.entry-content,.post-content,.page-content {
  max-width:100% !important; width:100% !important;
  padding:0 !important; margin:0 !important;
  background:transparent !important;
}

img, svg, video, iframe {
  max-width: 100%;
}

input, select, textarea, button {
  font: inherit;
}

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--gs-blue);
  outline-offset: 2px;
}


/* NOISE */
body::before { content:''; position:fixed; inset:0; pointer-events:none; z-index:9990; opacity:.08; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E"); }

/* KEYFRAMES */
@keyframes gs-slide-up { from{opacity:0;transform:translateY(42px)} to{opacity:1;transform:translateY(0)} }
@keyframes gs-float    { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-28px)} }
@keyframes gs-float-r  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(22px)} }

/* ── SCROLL PROGRESS ── */
.gs-progress { position:fixed; top:0; left:0; height:2px; width:0%; background:linear-gradient(90deg,var(--gs-purple),var(--gs-blue)); z-index:99997; transition:width .08s linear; box-shadow:0 0 8px rgba(108,99,255,.5); }

/* ── HERO CANVAS ── */
#gs-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; opacity:.5; }

/* ── GLOBE ── */
.gs-globe-wrap { position:absolute; right:5rem; top:50%; transform:translateY(-50%); width:min(400px,36vw); aspect-ratio:1; pointer-events:none; z-index:1; }
.gs-globe-svg { width:100%; height:100%; overflow:visible; }

/* ── FLOATING DATA CHIPS ── */
.gs-chip { position:absolute; background:rgba(255,255,255,.88); border:1px solid var(--gs-border); border-radius:40px; padding:.45rem 1rem; font-size:.72rem; letter-spacing:.5px; color:var(--gs-purple); font-family:'DM Sans',sans-serif; backdrop-filter:blur(8px); pointer-events:none; z-index:2; white-space:nowrap; box-shadow:0 4px 20px rgba(75,68,204,.1); display:flex; align-items:center; gap:.4rem; opacity:0; animation:gs-chip-appear .6s forwards; }
.gs-chip-dot { width:6px; height:6px; border-radius:50%; background:var(--gs-purple); flex-shrink:0; animation:gs-chip-blink 1.8s ease-in-out infinite; }
@keyframes gs-chip-blink  { 0%,100%{opacity:1} 50%{opacity:.25} }
@keyframes gs-chip-appear { to{opacity:1} }
@keyframes gs-chip-float  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes gs-chip-floatr { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} }
.gs-chip-1 { top:26%; right:calc(5rem + min(400px,36vw) + 1.5rem); animation-delay:.9s,0s; animation-name:gs-chip-appear,gs-chip-float;  animation-duration:.6s,7s;  animation-fill-mode:forwards,none; animation-iteration-count:1,infinite; animation-timing-function:ease,ease-in-out; }
.gs-chip-2 { top:52%; right:calc(5rem + min(400px,36vw) - 2rem);   animation-delay:1.2s,0s; animation-name:gs-chip-appear,gs-chip-floatr; animation-duration:.6s,9s;  animation-fill-mode:forwards,none; animation-iteration-count:1,infinite; animation-timing-function:ease,ease-in-out; }
.gs-chip-3 { bottom:18%; right:calc(5rem + min(400px,36vw) + 3rem); animation-delay:1.5s,0s; animation-name:gs-chip-appear,gs-chip-float;  animation-duration:.6s,11s; animation-fill-mode:forwards,none; animation-iteration-count:1,infinite; animation-timing-function:ease,ease-in-out; }

/* ── GLITCH on hero italic ── */
@keyframes gs-glitch-1 { 0%,93%,100%{clip-path:none;transform:none;color:var(--gs-purple)} 94%{clip-path:inset(15% 0 55% 0);transform:translate(-4px,1px);color:var(--gs-blue)} 95%{clip-path:inset(55% 0 15% 0);transform:translate(4px,-1px)} 96%{clip-path:inset(35% 0 35% 0);transform:translate(-2px,0);color:var(--gs-purple2)} 97%{clip-path:none;transform:none;color:var(--gs-purple)} }
.gs-page-title em { display:inline-block; animation:gs-glitch-1 7s steps(1) infinite; }

/* ── MOBILE ── */
@media(max-width:900px){ .gs-globe-wrap,.gs-chip{display:none} #gs-canvas{opacity:.25} }

/* SCROLL REVEAL */
.gs-reveal { opacity:0; transform:translateY(38px); transition:opacity .8s ease, transform .8s ease; }
.gs-reveal.in { opacity:1; transform:translateY(0); }
.d1 { transition-delay:.12s; } .d2 { transition-delay:.24s; }
.d3 { transition-delay:.36s; } .d4 { transition-delay:.48s; }

/* ── NAV ── */
.gs-nav {
  position:fixed; top:0; left:0; right:0; z-index:9000;
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem 3rem;
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(75,68,204,.08);
  box-shadow:0 2px 20px rgba(75,68,204,.04);
  transition:background .3s, box-shadow .3s;
}
.gs-nav.scrolled {
  background:rgba(255,255,255,.98);
  box-shadow:0 2px 24px rgba(75,68,204,.1);
}
.gs-nav-links {
  display:flex; align-items:center;
  gap:.3rem; list-style:none; margin-left:auto;
}
.gs-nav-link {
  display:inline-block; padding:.65rem 1.3rem;
  color:var(--gs-muted); font-size:.84rem; letter-spacing:.5px;
  text-decoration:none; font-family:'DM Sans',sans-serif;
  position:relative; transition:color .25s, background .25s;
  cursor:pointer; white-space:nowrap; border-radius:4px;
}
.gs-nav-link::after {
  content:''; position:absolute; bottom:5px; left:1.3rem; right:1.3rem;
  height:1.5px; background:var(--gs-purple);
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.gs-nav-link:hover, .gs-nav-link.active { color:var(--gs-purple); background:rgba(75,68,204,.05); }
.gs-nav-link:hover::after, .gs-nav-link.active::after { transform:scaleX(1); }
.gs-nav-cta {
  display:inline-flex; align-items:center; padding:.65rem 1.6rem;
  background:var(--gs-purple); color:#fff !important;
  font-size:.84rem; letter-spacing:1px; text-transform:uppercase;
  font-family:'DM Sans',sans-serif; text-decoration:none;
  border-radius:4px; position:relative; overflow:hidden;
  transition:transform .25s, box-shadow .25s; cursor:pointer; white-space:nowrap;
}
.gs-nav-cta::before {
  content:''; position:absolute; inset:0;
  background:var(--gs-purple2); transform:translateX(-101%); transition:transform .35s ease;
  pointer-events:none;
}
.gs-nav-cta span { position:relative; z-index:1; }
.gs-nav-cta:hover::before { transform:translateX(0); }
.gs-nav-cta:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(75,68,204,.25); }
.gs-nav-cta.active { box-shadow:0 0 0 2px var(--gs-blue), 0 6px 20px rgba(75,68,204,.25); }
.gs-hamburger {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; padding:.5rem; background:none; border:none;
  margin-left:auto; z-index:10001; position:relative; touch-action:manipulation; -webkit-tap-highlight-color:transparent;
}
.gs-hamburger span { width:24px; height:2px; background:var(--gs-purple); border-radius:2px; transition:all .3s; display:block; }

/* ── PAGE HERO ── */
.gs-page-hero {
  padding:10rem 5rem 6rem;
  background:linear-gradient(135deg,#FFFFFF 0%,#F0F0FA 100%);
  position:relative; overflow:hidden;
}
.gs-page-hero-grid {
  position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(75,68,204,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(75,68,204,.05) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse at 30% 50%,black 20%,transparent 70%);
}
.gs-page-orb {
  position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none;
  width:500px; height:500px;
  background:radial-gradient(circle,rgba(75,68,204,.09),transparent 70%);
  top:-100px; right:-100px;
  animation:gs-float 9s ease-in-out infinite;
}
.gs-page-hero-inner { max-width:1200px; margin:0 auto; position:relative; z-index:1; }
.gs-breadcrumb { font-size:.72rem; letter-spacing:4px; text-transform:uppercase; color:var(--gs-muted); margin-bottom:1.8rem; display:flex; align-items:center; gap:.8rem; animation:gs-slide-up .7s cubic-bezier(.22,1,.36,1) forwards; opacity:0; animation-delay:.2s; }
.gs-breadcrumb a { color:var(--gs-purple); text-decoration:none; }
.gs-breadcrumb span { color:var(--gs-border); }
.gs-page-title { font-family:'Playfair Display',serif; font-size:clamp(3rem,6vw,5.5rem); font-weight:700; line-height:1.08; color:var(--gs-white); max-width:700px; animation:gs-slide-up .9s cubic-bezier(.22,1,.36,1) forwards; opacity:0; animation-delay:.35s; }
.gs-page-title em { font-style:italic; color:var(--gs-purple); }
.gs-page-subtitle { margin-top:1.8rem; font-size:1.1rem; line-height:1.8; color:var(--gs-muted); max-width:540px; animation:gs-slide-up .9s cubic-bezier(.22,1,.36,1) forwards; opacity:0; animation-delay:.5s; }

/* ── SHARED ── */
.gs-section { padding:7rem 5rem; position:relative; }
.gs-section-alt { background:var(--gs-navy); }
.gs-inner { max-width:1200px; margin:0 auto; }
.gs-label { font-size:.7rem; letter-spacing:5px; text-transform:uppercase; color:var(--gs-purple); margin-bottom:1.2rem; }
.gs-line  { width:52px; height:2px; background:var(--gs-purple); margin-bottom:1.4rem; }
.gs-title { font-family:'Playfair Display',serif; font-size:clamp(2rem,4vw,3rem); font-weight:700; line-height:1.2; color:var(--gs-white); }
.gs-divider::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(to right,transparent,var(--gs-purple),transparent); }

/* ── CONTACT GRID ── */
.gs-contact-grid {
  display:grid; grid-template-columns:1fr 1.4fr; gap:5rem; align-items:start;
}

/* ── CONTACT INFO CARDS ── */
.gs-info-cards { display:flex; flex-direction:column; gap:1.2rem; margin-top:2.5rem; }
.gs-info-card {
  background:var(--gs-card); border:1px solid var(--gs-border);
  padding:1.8rem 2rem; display:flex; align-items:flex-start; gap:1.4rem;
  position:relative; overflow:hidden;
  transition:border-color .3s, box-shadow .3s, transform .3s;
 ;
}
.gs-info-card::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--gs-purple); transition:width .4s ease; }
.gs-info-card:hover { border-color:rgba(75,68,204,.3); box-shadow:0 12px 32px rgba(75,68,204,.08); transform:translateY(-3px); }
.gs-info-card:hover::after { width:100%; }
.gs-info-icon {
  width:44px; height:44px; flex-shrink:0;
  background:rgba(75,68,204,.08); border:1px solid var(--gs-border);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; color:var(--gs-purple);
  transition:background .3s, color .3s;
}
.gs-info-card:hover .gs-info-icon { background:var(--gs-purple); color:#fff; }
.gs-info-label { font-size:.68rem; letter-spacing:3px; text-transform:uppercase; color:var(--gs-purple); margin-bottom:.3rem; }
.gs-info-value { font-size:.95rem; color:var(--gs-white); line-height:1.6; }
.gs-info-value a { color:var(--gs-white); text-decoration:none; transition:color .2s; }
.gs-info-value a:hover { color:var(--gs-purple); }

/* ── LINK PAGES CARDS ── */
.gs-page-links { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:2.5rem; }
.gs-page-link-card {
  background:var(--gs-card); border:1px solid var(--gs-border);
  padding:2rem; text-decoration:none;
  position:relative; overflow:hidden;
  transition:border-color .3s, box-shadow .3s, transform .3s;
  display:block;
}
.gs-page-link-card::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(75,68,204,.05),transparent);
  opacity:0; transition:opacity .3s;
}
.gs-page-link-card::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--gs-purple); transition:width .4s ease; }
.gs-page-link-card:hover { border-color:rgba(75,68,204,.3); box-shadow:0 16px 36px rgba(75,68,204,.1); transform:translateY(-4px); }
.gs-page-link-card:hover::before { opacity:1; }
.gs-page-link-card:hover::after { width:100%; }
.gs-page-link-icon { font-size:1.8rem; margin-bottom:1.2rem; display:block; }
.gs-page-link-title { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--gs-white); margin-bottom:.6rem; }
.gs-page-link-desc  { font-size:.85rem; line-height:1.7; color:var(--gs-muted); margin-bottom:1.2rem; }
.gs-page-link-arrow { font-size:.82rem; color:var(--gs-purple); letter-spacing:1px; text-transform:uppercase; display:flex; align-items:center; gap:.4rem; transition:gap .3s; }
.gs-page-link-card:hover .gs-page-link-arrow { gap:.8rem; }

/* ── CONTACT FORM ── */
.gs-form-wrap {
  background:var(--gs-card); border:1px solid var(--gs-border);
  padding:3rem;
}
.gs-form-title { font-family:'Playfair Display',serif; font-size:1.6rem; color:var(--gs-white); margin-bottom:.6rem; }
.gs-form-sub   { font-size:.9rem; color:var(--gs-muted); margin-bottom:2.5rem; line-height:1.7; }

.gs-form { display:flex; flex-direction:column; gap:1.2rem; }
.gs-field-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.gs-field { display:flex; flex-direction:column; gap:.5rem; }
.gs-field label { font-size:.72rem; letter-spacing:3px; text-transform:uppercase; color:var(--gs-purple); }
.gs-field input,
.gs-field select,
.gs-field textarea {
  background:var(--gs-deep); border:1px solid var(--gs-border);
  padding:.9rem 1.1rem; color:var(--gs-white);
  font-family:'DM Sans',sans-serif; font-size:.92rem;
  outline:none; transition:border-color .3s, box-shadow .3s;
  width:100%;
}
.gs-field input:focus,
.gs-field select:focus,
.gs-field textarea:focus {
  border-color:var(--gs-purple);
  box-shadow:0 0 0 3px rgba(75,68,204,.1);
}
.gs-field textarea { resize:vertical; min-height:130px; }
.gs-field select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235A6380' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
.gs-field input::placeholder,
.gs-field textarea::placeholder { color:rgba(90,99,128,.5); }

.gs-form-submit {
  display:inline-flex; align-items:center; gap:.6rem;
  padding:1rem 2.6rem; background:var(--gs-purple); color:#fff;
  font-family:'DM Sans',sans-serif; font-size:.88rem; letter-spacing:1.5px;
  text-transform:uppercase; border:none;
  position:relative; overflow:hidden; transition:transform .3s;
  margin-top:.5rem; align-self:flex-start;
}
.gs-form-submit::before { content:''; position:absolute; inset:0; background:var(--gs-purple2); transform:translateX(-101%); transition:transform .4s ease; }
.gs-form-submit:hover::before { transform:translateX(0); }
.gs-form-submit:hover { transform:translateY(-2px); }
.gs-form-submit span { position:relative; z-index:1; }

.gs-form-note { font-size:.78rem; color:var(--gs-muted); margin-top:.5rem; }

/* success state */
.gs-form-success {
  display:none; text-align:center; padding:3rem 2rem;
}
.gs-form-success.show { display:block; }
.gs-form-success-icon { font-size:3rem; margin-bottom:1rem; }
.gs-form-success h3 { font-family:'Playfair Display',serif; font-size:1.6rem; color:var(--gs-white); margin-bottom:.8rem; }
.gs-form-success p { color:var(--gs-muted); font-size:.95rem; line-height:1.75; }

/* ── MAP / LOCATION ── */
.gs-location-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.gs-location-text h2 { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,3vw,2.6rem); color:var(--gs-white); margin-bottom:1.2rem; }
.gs-location-text p  { font-size:.98rem; line-height:1.85; color:var(--gs-muted); }
.gs-location-text strong { color:var(--gs-white); }
.gs-location-details { display:flex; flex-direction:column; gap:1rem; margin-top:2rem; }
.gs-location-detail { display:flex; align-items:flex-start; gap:1rem; font-size:.9rem; color:var(--gs-muted); line-height:1.6; }
.gs-location-detail-icon { color:var(--gs-purple); font-size:1rem; flex-shrink:0; margin-top:.1rem; }
.gs-map-placeholder {
  background:var(--gs-surface); border:1px solid var(--gs-border);
  height:320px; display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:1rem; color:var(--gs-muted);
  position:relative; overflow:hidden;
}
.gs-map-placeholder::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(75,68,204,.04),transparent);
}
.gs-map-pin { font-size:2.5rem; }
.gs-map-text { font-size:.82rem; letter-spacing:2px; text-transform:uppercase; color:var(--gs-muted); }

/* ── FOOTER ── */
.gs-footer { padding:2rem 5rem; background:#EEEEF5; border-top:1px solid var(--gs-border); display:flex; justify-content:space-between; align-items:center; }
.gs-footer-logo { font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:3px; color:var(--gs-purple); }
.gs-footer-copy  { font-size:.8rem; color:var(--gs-muted); }

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .gs-nav { padding:.85rem 2rem; }
  .gs-page-hero { padding:8.5rem 2.4rem 4.5rem; }
  .gs-section { padding-left:2.4rem; padding-right:2.4rem; }
  .gs-footer { padding-left:2.4rem; padding-right:2.4rem; }
  .gs-contact-grid  { grid-template-columns:1fr; gap:3rem; }
  .gs-location-grid { grid-template-columns:1fr; gap:3rem; }
}
@media(max-width:768px){
      /* nav */
  .gs-nav { padding:.75rem 1.5rem; }
  .gs-nav-links { display:none; }
  .gs-hamburger { display:flex !important; }
  .gs-nav-links.open {
    display:flex; flex-direction:column;
    position:fixed; top:4rem; left:50%; transform:translateX(-50%);
    width:90%; max-width:360px;
    background:#fff; border:1px solid var(--gs-border);
    border-radius:12px; padding:1rem;
    box-shadow:0 20px 60px rgba(75,68,204,.15);
    gap:.3rem; z-index:9999; align-items:stretch;
  }
  .gs-nav-link { padding:1rem 1.2rem; width:100%; font-size:.95rem; border-radius:8px; }
  .gs-nav-link::after { display:none; }
  .gs-nav-cta { padding:1rem 1.2rem; width:100%; justify-content:center; border-radius:8px; margin-top:.3rem; }

  /* page hero */
  .gs-page-hero  { padding:7rem 1.5rem 3.5rem; }
  .gs-page-title { font-size:clamp(2.2rem,9vw,3.2rem); }

  /* sections */
  .gs-section { padding:4rem 1.5rem; }

  /* contact grid */
  .gs-contact-grid { grid-template-columns:1fr; gap:2.5rem; }
  .gs-page-links   { grid-template-columns:1fr; }

  /* form */
  .gs-form-wrap { padding:2rem 1.2rem; }
  .gs-field-row { grid-template-columns:1fr; }
  .gs-form-submit { width:100%; justify-content:center; }

  /* location */
  .gs-location-grid { grid-template-columns:1fr; gap:2rem; }

  /* footer */
  .gs-footer { flex-direction:column; gap:1rem; text-align:center; padding:1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .gs-cursor,
  .gs-cursor-ring,
  .gs-page-orb,
  .gs-chip,
  #gs-canvas {
    display: none !important;
  }
}
