/* Poppins throughout; palette follows the attached dark/light hero concepts. */ :root,html[data-theme="dark"] {
  color-scheme:dark;
  --paper:#100907;
  --white:#17110d;
  --ink:#fff5ec;
  --orange:#ff7924;
  --muted:#c4b4a6;
  --line:#503426;
  --card:#24180f;
  --alternate:#1b100b;
  --hero-light-mix:0;
  --header-bg:#140b079c;
  --header-line:#b775453e;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) {
  color-scheme:light;
  --paper:#fff0de;
  --white:#fff8ef;
  --ink:#18110c;
  --orange:#ee5f16;
  --muted:#766254;
  --line:#e6cdb5;
  --card:#f8e3d0;
  --alternate:#fde8d2;
  --hero-light-mix:1;
  --header-bg:#fff9efb8;
  --header-line:#ffffff8f;
}
body,button,input,textarea {
  font-family:Poppins,Arial,sans-serif;
}
h1,h2,h3 {
  font-family:Poppins,Arial,sans-serif;
  font-style:normal;
  letter-spacing:-.045em;
}
h2 {
  font-weight:600;
}
h3 {
  font-weight:500;
}
p {
  font-weight:400;
}
.eyebrow,.micro {
  font-weight:600;
}
.button {
  font-weight:600;
}
body,main,section,header,footer,.service-card,.clutch-card,.group-row,.client-logo,.work-visual,.image-frame,.button {
  transition:background-color .8s,color .8s,border-color .8s,box-shadow .8s;
}
.site-header {
  top:30px;
  left:var(--pad);
  right:var(--pad);
  padding:0 28px;
  height:86px;
  border:1px solid var(--header-line);
  border-radius:19px;
  background:var(--header-bg);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  z-index:100;
  animation:header-arrive 1s .1s both;
}
.site-header.scrolled {
  top:14px;
  height:72px;
  background:var(--header-bg);
  box-shadow:0 8px 35px #00000012;
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
}
.brand img {
  width:165px;
  filter:none!important;
}
.desktop-nav {
  gap:32px;
  margin-right:8px;
}
.desktop-nav a {
  font-size:13px;
  color:var(--ink);
  font-weight:500;
}
.desktop-nav a:after {
  background:var(--ink);
}
.header-cta.button.dark {
  background:#080604;
  color:#fff6ec;
  border:1px solid #ef79254d;
  min-width:140px;
  justify-content:center;
  gap:15px;
}
.menu-toggle span {
  background:var(--ink);
}
.mobile-menu {
  background:var(--paper);
}
.hero {
  background:var(--paper);
  height:100svh;
  min-height:830px;
  max-height:1200px;
  isolation:isolate;
  overflow:hidden;
}
.hero-media {
  inset:0;
  background:var(--paper)!important;
  z-index:0;
}
.hero-media:before,.hero-media:after {
  display:none;
}
.hero-media .hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  filter:none;
  visibility:visible;
}
.hero-video--dark {
  opacity:calc(1 - var(--hero-light-mix));
}
.hero-video--light {
  opacity:var(--hero-light-mix);
}
.hero-bg-poster {
  display:none;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero-shade {
  position:absolute;
  z-index:1;
  background:linear-gradient(90deg,#10090748,transparent 66%);
  pointer-events:none;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .hero-shade {
  background:linear-gradient(90deg,#fff2e029,transparent 65%);
}
.hero-content {
  max-width:none;
  width:54%;
  padding:clamp(195px,25vh,290px) 0 145px var(--pad);
  position:relative;
  z-index:4;
  pointer-events:none;
}
.hero-content a {
  pointer-events:auto;
}
.hero-eyebrow {
  font-size:12px;
  letter-spacing:.15em;
  color:var(--ink);
  margin-bottom:26px;
  animation:none;
}
.hero h1 {
  font-size:clamp(66px,6.65vw,126px);
  font-weight:700;
  line-height:1.035;
  letter-spacing:-.055em;
  max-width:850px;
  color:var(--ink);
}
.hero h1 em {
  color:var(--orange);
}
.hero-line {
  padding-bottom:.14em;
  margin-bottom:-.14em;
}
.hero-line>span {
  animation:hero-type-in 1.3s var(--ease) both;
  animation-delay:.1s;
}
.hero-line:nth-child(2)>span {
  animation-delay:.23s;
}
.hero-proposition {
  font-size:clamp(13px,1.05vw,18px);
  font-weight:600;
  line-height:1.55;
  max-width:630px;
  margin-top:24px;
  overflow:hidden;
  letter-spacing:-.025em;
}
.hero-proposition>span {
  display:block;
  animation:hero-type-in 1.1s .47s var(--ease) both;
}
.hero-lower {
  margin-top:23px;
  max-width:575px;
  animation:soft-in 1s .72s var(--ease) both;
}
.hero-lower>p {
  font-size:15px;
  line-height:1.6;
  max-width:380px;
  color:var(--ink);
}
.hero-buttons {
  margin-top:30px;
  gap:28px;
}
.hero .button.dark {
  background:linear-gradient(130deg,#ff7b20,#ee5409);
  color:#fff;
  font-size:13px;
  min-height:56px;
  padding:16px 23px;
  box-shadow:0 10px 30px #ff660e29;
  border:1px solid #ffbe6859;
}
.hero .button.dark:hover {
  box-shadow:0 12px 40px #ff660e4d;
  background:#fb721b;
  color:#fff;
}
.hero .text-link {
  color:var(--ink);
  font-size:13px;
}
.hero-bottom {
  z-index:9;
  bottom:30px;
}
.hero-bottom .scroll-cue,.hero-bottom .motion-toggle {
  color:var(--muted);
}
.scroll-mark {
  border-color:var(--line);
}
@keyframes hero-type-in {
  from {
    transform:translateY(120%) skewY(3deg);
    opacity:.2;
  }
  to {
    transform:translateY(0) skewY(0);
    opacity:1;
  }
}
@keyframes header-arrive {
  from {
    opacity:0;
    translate:0 -12px;
  }
  to {
    opacity:1;
    translate:0 0;
  }
}
.planet-installation {
  position:absolute;
  z-index:5;
  right:3.4%;
  top:clamp(138px,17.5vh,240px);
  width:46%;
  max-width:730px;
  min-width:415px;
  color:var(--ink);
  animation:earth-arrive 1.7s .38s var(--ease) both;
}
.planet-scene {
  position:relative;
  display:block;
  aspect-ratio:1;
  cursor:grab;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
  isolation:isolate;
}
.planet-scene.dragging {
  cursor:grabbing;
}
.planet-glow {
  position:absolute;
  inset:2%;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle at 28% 35%,#ffb8448c,transparent 63%);
  box-shadow:0 0 70px #ff8a1d36,0 0 180px #ff6d0629;
  filter:blur(22px);
  pointer-events:none;
}
.planet-scene:after {
  content:'';
  position:absolute;
  inset:3.65%;
  border-radius:50%;
  border:1px solid #ffbf6980;
  box-shadow:inset 0 0 13px #ff91345c,0 0 14px #ff8e3226;
  pointer-events:none;
}
.planet-fallback,#planet-canvas {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
}
.planet-fallback--light {
  opacity:0;
}
.planet-fallback--dark {
  opacity:1;
}
#planet-canvas {
  opacity:0;
}
.gl-ready #planet-canvas {
  opacity:1;
}
.gl-ready .planet-fallback {
  opacity:0!important;
}
.planet-native {
  position:absolute;
  width:1px;
  height:1px;
  clip-path:inset(50%);
  overflow:hidden;
  white-space:nowrap;
  bottom:100px;
  right:20%;
  padding:0;
  border:0;
}
.planet-native:focus-visible~.planet-installation .planet-orbit {
  outline:3px solid var(--orange);
  outline-offset:5px;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .planet-fallback--light {
  opacity:1;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .planet-fallback--dark {
  opacity:0;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .planet-glow {
  background:radial-gradient(circle at 25% 35%,#ffd08169,transparent 68%);
  box-shadow:0 0 80px #ffe4b980,0 0 170px #ffddac6b;
  filter:blur(25px);
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .planet-scene:after {
  border-color:#ffe5b2a3;
  box-shadow:inset 0 0 14px #ffc97369,0 0 30px #ffd89855;
}
.planet-controls {
  position:relative;
  display:grid;
  grid-template-columns:70px 1fr 70px;
  gap:13px;
  align-items:center;
  width:90%;
  margin:-6px auto 0;
}
.planet-mode {
  appearance:none;
  background:none;
  border:0;
  min-height:45px;
  color:var(--muted);
  font-family:inherit;
  font-size:11px;
  letter-spacing:.14em;
  font-weight:600;
  cursor:pointer;
  border-radius:9px;
  padding:9px 0;
  touch-action:manipulation;
}
.planet-mode.selected {
  color:var(--orange);
}
.planet-orbit {
  position:relative;
  height:46px;
  border:1px solid #bf794251;
  border-radius:50%;
  display:flex;
  justify-content:center;
  align-items:end;
  cursor:pointer;
  gap:12px;
  padding-top:19px;
  user-select:none;
  -webkit-user-select:none;
  touch-action:manipulation;
}
.planet-orbit:after {
  content:'';
  position:absolute;
  left:28%;
  right:28%;
  bottom:-2px;
  height:5px;
  background:var(--paper);
  opacity:.7;
  z-index:0;
}
.orbit-left,.orbit-right {
  font-size:27px;
  line-height:26px;
  z-index:2;
  color:var(--orange);
  margin-bottom:-5px;
}
.orbit-thumb {
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  flex:none;
  background:#fff9ed;
  border-radius:50%;
  box-shadow:0 0 0 5px #ff934522,0 0 15px #ffa24252;
  margin-bottom:-7px;
}
.orbit-thumb>span {
  width:9px;
  height:9px;
  background:var(--orange);
  border-radius:50%;
}
.planet-hint {
  text-align:center;
  font-size:11px;
  line-height:1.6;
  letter-spacing:.035em;
  margin:24px 10px 0;
  color:var(--ink);
}
html:has(#planet-theme-native:checked) #planet-light {
  color:var(--orange);
}
html:has(#planet-theme-native:checked) #planet-dark {
  color:var(--muted);
}
html:not(:has(#planet-theme-native:checked)) #planet-dark {
  color:var(--orange);
}
html:not(:has(#planet-theme-native:checked)) #planet-light {
  color:var(--muted);
}
@keyframes earth-arrive {
  from {
    opacity:0;
    scale:.9;
    translate:0 15px;
  }
  to {
    opacity:1;
    scale:1;
    translate:0 0;
  }
}
/* Color rhythm continues through every source section. */ .about,.work,.trust,.group {
  background:var(--white);
}
.services,.services-stage {
  background:var(--paper);
}
.service-card {
  background:var(--card)!important;
  border:1px solid var(--line);
  color:var(--ink);
}
.service-problem,.service-description {
  color:var(--muted);
}
.process {
  background:var(--alternate);
  color:var(--ink);
}
.process-step {
  background:var(--alternate);
  border-color:var(--line);
}
.process-step p,.process .lead,.process-subheading {
  color:var(--muted);
}
.process-step.active h3 {
  color:var(--orange);
}
.process-object span {
  color:var(--muted);
}
.step-number {
  color:var(--orange);
}
.testimonials,.join {
  background:var(--alternate);
}
.clutch-card {
  background:var(--white);
  border-color:var(--line);
}
.clutch-card:hover {
  background:var(--card);
  transform:translateY(-4px);
}
.group-row:hover {
  background:var(--card);
}
.photo-card .image-frame {
  border-color:var(--white);
  box-shadow:0 14px 50px #00000013;
}
.team-small,.join-photo {
  transform:none;
}
.work-visual {
  border:1px solid var(--line);
  background:#291c13;
}
.placeholder-ui {
  background:#f5e9dbf0;
  transform:none;
}
.work-card:hover .placeholder-ui {
  transform:translateY(-8px);
}
.work-meta h3 {
  font-weight:500;
}
.work-description {
  font-size:13px;
  line-height:1.8;
}
.client-logo:hover,.client-logo:focus-visible {
  background:var(--card);
}
html[data-theme="dark"] .work-visual {
  background:#291c13!important;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .work-visual {
  background:#f0ddc6!important;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .work-visual:nth-child(2n) {
  background:#f3dfcc!important;
}
.contact {
  background:var(--paper);
  color:var(--ink);
  border-top:1px solid var(--line);
}
.contact h2 span {
  color:var(--orange);
}
.contact .micro,.contact-copy>p,.contact-direct>span {
  color:var(--muted);
}
.contact .tiny-cross {
  color:var(--orange);
}
.contact-direct a {
  color:var(--ink);
}
.contact-form input,.contact-form textarea,.contact-form label {
  color:var(--ink);
}
.contact-form input,.contact-form textarea {
  border-color:var(--line);
}
.contact-form input::placeholder,.contact-form textarea::placeholder {
  color:var(--muted);
  opacity:.7;
}
.contact-form label>span {
  color:var(--orange);
}
.form-bottom p {
  color:var(--muted);
}
.button.dark {
  background:var(--orange);
  color:#fff6ec;
}
.button.dark:hover {
  background:var(--ink);
  color:var(--paper);
}
.footer {
  background:var(--alternate);
  color:var(--ink);
  border-top:1px solid var(--line);
}
.footer-nav,.footer-nav a,.footer-bottom p,.footer-bottom a {
  border-color:var(--line);
  color:var(--muted);
}
.footer-main p span {
  color:var(--orange);
}
.footer-brand img {
  filter:none;
}
.back-top {
  border-color:var(--line);
  color:var(--ink);
}
.motion-paused .hero-line>span,.motion-paused .hero-lower,.motion-paused .hero-proposition>span,.motion-paused .planet-installation {
  animation:none;
  opacity:1;
  transform:none;
  scale:1;
  translate:0 0;
}
@media(min-width:761px) {
  .menu-toggle {
    display:none;
  }
}
@media(max-height:820px) and (min-width:761px) {
  .hero {
    min-height:760px;
  }
  .hero-content {
    padding-top:192px;
  }
  .hero h1 {
    font-size:6.55vw;
  }
  .hero-eyebrow {
    margin-bottom:23px;
  }
  .hero-proposition {
    margin-top:21px;
  }
  .hero-lower {
    margin-top:20px;
  }
  .planet-installation {
    top:147px;
    max-width:630px;
    width:44%;
  }
}
@media(max-width:1100px) and (min-width:761px) {
  .hero-content {
    width:56%;
  }
  .hero h1 {
    font-size:6.7vw;
  }
  .hero-lower>p {
    font-size:14px;
    max-width:330px;
  }
  .hero-proposition {
    font-size:13px;
    max-width:400px;
  }
  .hero-buttons {
    gap:16px;
    align-items:start;
    flex-direction:column;
  }
  .planet-installation {
    right:2%;
    width:43%;
    min-width:330px;
    top:220px;
  }
  .planet-hint {
    font-size:10px;
  }
  .desktop-nav {
    gap:19px;
  }
  .site-header {
    padding:0 22px;
  }
  .brand img {
    width:140px;
  }
}
@media(max-width:760px) {
  :root {
    --pad:24px;
  }
  .site-header {
    left:16px;
    right:16px;
    top:16px;
    height:73px;
    padding:0 17px;
    border-radius:16px;
  }
  .site-header.scrolled {
    top:8px;
    height:64px;
  }
  .brand img {
    width:130px;
  }
  .header-cta.button.dark {
    min-width:0;
    font-size:10px!important;
    min-height:40px!important;
    padding:8px 12px!important;
    gap:7px;
  }
  .header-cta svg {
    width:13px;
  }
  .header-actions {
    gap:12px;
  }
  .hero {
    height:auto;
    min-height:100svh;
    max-height:none;
    padding-bottom:94px;
  }
  .hero-content {
    width:100%;
    padding:137px var(--pad) 8px;
    max-width:none;
  }
  .hero h1 {
    font-size:clamp(48px,10.8vw,79px);
    line-height:1.07;
    letter-spacing:-.05em;
  }
  .hero-eyebrow {
    font-size:10px;
    margin-bottom:25px;
  }
  .hero-proposition {
    font-size:13px;
    max-width:450px;
    margin-top:20px;
    line-height:1.6;
  }
  .hero-lower {
    margin-top:22px;
    max-width:440px;
  }
  .hero-lower>p {
    font-size:13px;
    line-height:1.65;
    max-width:350px;
  }
  .hero-buttons {
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:20px;
    margin-top:24px;
  }
  .hero .button.dark {
    font-size:11px;
    min-height:50px;
    padding:14px 18px;
    gap:14px;
  }
  .hero .text-link {
    font-size:11px;
    gap:9px;
  }
  .hero-media {
    inset:0;
  }
  .hero-media .hero-video,.hero-bg-poster {
    object-position:58% center;
  }
  .hero-shade {
    background:linear-gradient(#10090736,transparent 65%);
  }
  html:is([data-theme="light"],:has(#planet-theme-native:checked)) .hero-shade {
    background:linear-gradient(#fff0de33,transparent 65%);
  }
  .planet-installation {
    position:relative;
    top:auto;
    right:auto;
    width:94%;
    max-width:490px;
    min-width:0;
    margin:20px auto 0;
  }
  .planet-scene {
    width:100%;
  }
  .planet-controls {
    margin:-7px auto 0;
    grid-template-columns:54px 1fr 54px;
    gap:7px;
  }
  .planet-mode {
    font-size:10px;
    min-height:46px;
  }
  .planet-hint {
    font-size:10px;
    margin-top:21px;
  }
  .planet-orbit {
    height:36px;
  }
  .orbit-thumb {
    width:22px;
    height:22px;
  }
  .planet-glow {
    filter:blur(17px);
    box-shadow:0 0 65px #ff8a1d29;
  }
  .hero-bottom {
    bottom:25px;
    left:var(--pad);
    right:var(--pad);
  }
  .hero-bottom .scroll-cue {
    font-size:8px;
  }
  .scroll-mark {
    height:34px;
    width:26px;
  }
  .hero-bottom .motion-toggle {
    font-size:8px;
  }
  .about h2,.group h2,.work h2 {
    font-size:43px;
  }
  .service-card h3 {
    font-size:29px;
  }
  .process-intro h2 {
    font-size:61px;
  }
  .join h2 {
    font-size:43px;
  }
  .contact h2 {
    font-size:54px;
  }
  .work-description {
    font-size:12px;
  }
}
@media(max-width:370px) {
  .hero h1 {
    font-size:44px;
  }
  .hero-buttons {
    gap:12px;
  }
  .hero .button.dark {
    font-size:10px;
    padding:13px 15px;
  }
  .header-cta svg {
    display:none;
  }
  .brand img {
    width:112px;
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
  .hero-bg-poster {
    display:block;
  }
  .hero-bg-poster--dark {
    opacity:calc(1 - var(--hero-light-mix));
  }
  .hero-bg-poster--light {
    opacity:var(--hero-light-mix);
  }
  .hero-media .hero-video {
    display:none;
  }
  .planet-installation,.hero-line>span,.hero-lower,.hero-proposition>span {
    opacity:1;
    transform:none;
    scale:1;
    translate:0 0;
  }
}
.brand .logo-light,.footer-brand .logo-light {
  display:none;
}
.brand .logo-dark,.footer-brand .logo-dark {
  display:block;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .brand .logo-light,html:is([data-theme="light"],:has(#planet-theme-native:checked)) .footer-brand .logo-light {
  display:block;
}
html:is([data-theme="light"],:has(#planet-theme-native:checked)) .brand .logo-dark,html:is([data-theme="light"],:has(#planet-theme-native:checked)) .footer-brand .logo-dark {
  display:none;
}

/* Keep the globe and its controls inside short desktop heroes. */
@media(min-width:761px){.planet-installation{width:min(46vw,calc(100svh - 260px),730px)}}
