/* A laid-back 3D identity, with Halide's perspective and entrance timing. */
:root { --nav-height: 70px; --paper: #f5f5f7; }
.site-header { background: rgba(245, 245, 247, .9); }
.hero {
  min-height: 100svh;
  padding-top: var(--nav-height);
  overflow: clip;
  background: var(--paper);
}
.hero-sticky {
  position: relative;
  top: 0;
  height: auto;
  min-height: calc(100svh - var(--nav-height));
  display: flex;
  overflow: visible;
}
.hero-main {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  flex: 1;
  min-height: max(600px, calc(100svh - var(--nav-height)));
  padding: 70px 0 90px;
}
.hero-copy {
  flex: none;
  width: 52%;
  max-width: 670px;
  text-align: left;
  transform: none;
  opacity: 1;
  will-change: auto;
}
.hero h1 {
  margin: 0;
  font-size: clamp(64px, 7.6vw, 116px);
  line-height: .98;
  letter-spacing: -.065em;
  font-weight: 600;
  color: #1d1d1f;
}
.hero-description {
  margin: 28px 0 0;
  max-width: 390px;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: -.25px;
  line-height: 1.55;
  color: #6e6e73;
  text-wrap: pretty;
}
.hero-description br { display: initial; }
.hero-link {
  display: inline-flex;
  align-items: center;
  margin-top: 20px;
  color: #0066cc;
  font-size: 15px;
  font-weight: 450;
  line-height: 1.5;
}
.hero-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.hero-visual {
  position: absolute;
  left: 42%;
  top: 0;
  width: 64%;
  max-width: none;
  height: 100%;
  min-height: 0;
  max-height: none;
  margin: 0;
  isolation: isolate;
  touch-action: pan-y;
}
.hero-canvas {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 2.5s cubic-bezier(.16, 1, .3, 1) .3s;
}
.hero-visual[data-state="ready"] .hero-canvas { opacity: 1; }
.hero-fallback {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 90%;
  height: auto;
  max-height: 90%;
  object-fit: contain;
  transform: translate(-50%, -50%) perspective(2000px) rotateX(55deg) scale(var(--scene-scale, 1));
  opacity: 0;
  visibility: hidden;
}
/* A fallback is an error state, not a loading placeholder. */
.hero-visual[data-state="fallback"] .hero-fallback,
.hero-unavailable .hero-fallback { opacity: 1; visibility: visible; }
.motion-enabled .hero h1,
.motion-enabled .hero-description,
.motion-enabled .hero-link { animation: none; }
.statement { font-size: clamp(35px, 4.3vw, 61px); }
.company { grid-template-columns: 1fr 4.5fr; gap: 34px; }
.company-detail { max-width: 560px; }
.company-detail .small-cross { display: none; }
.company-detail p { font-size: 16px; line-height: 1.8; }
.work { border-radius: 0; }
.approach h2 { letter-spacing: -.05em; }
.approach h2 span::before { content: none; }
.next-chapter { background: #eceef1; }
.next-chapter::before { display: none; }
.next-inner h2 { font-size: clamp(40px, 5vw, 68px); }
.next-description { margin-inline: auto; max-width: 390px; }
.footer-bottom > p:nth-child(2) { display: block; }
.motion-paused { scroll-behavior: auto; }
.motion-paused *, .motion-paused *::before, .motion-paused *::after {
  animation: none !important;
  transition: none !important;
}
.motion-paused .hero-copy, .motion-paused .product-window { transform: none !important; opacity: 1 !important; }
.motion-paused .reveal { opacity: 1 !important; transform: none !important; }
.motion-paused .statement > span { color: var(--ink) !important; }
@media (min-width: 1600px) {
  .hero-description { font-size: 18px; }
}
@media (max-width: 1100px) {
  .company { grid-template-columns: 1fr; }
  .hero h1 { font-size: clamp(60px, 7.6vw, 84px); }
  .hero-description { font-size: 15px; max-width: 330px; }
  .hero-visual { left: 42%; width: 66%; }
}
@media (max-width: 760px) {
  :root { --nav-height: 64px; }
  .hero-main {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: calc(100svh - var(--nav-height));
    padding: 56px 0 28px;
  }
  .hero-copy { width: 100%; max-width: none; }
  .hero h1 { font-size: clamp(56px, 11vw, 80px); line-height: .99; letter-spacing: -.06em; }
  .hero-description { font-size: 15px; margin-top: 24px; max-width: 390px; }
  .hero-link { margin-top: 16px; font-size: 14px; }
  .hero-visual {
    position: relative;
    left: auto;
    top: auto;
    width: calc(100% + 32px);
    height: clamp(260px, 39svh, 400px);
    min-height: 0;
    flex: none;
    margin: 0 0 0 -16px;
  }
  .company { grid-template-columns: 1fr; gap: 28px; }
  .statement { font-size: clamp(30px, 6.7vw, 43px); letter-spacing: -.045em; }
  .company-detail { margin-top: 28px; }
  .company-detail p { font-size: 14px; }
  .product-category { max-width: 120px; line-height: 1.65; }
  .next-inner h2 { font-size: clamp(36px, 8.8vw, 55px); }
  .footer-bottom > p:last-child { display: block; }
}
@media (max-width: 370px) {
  .hero-main { padding-top: 36px; }
  .hero h1 { font-size: 50px; }
  .hero-description { font-size: 13px; }
  .hero-visual { height: 250px; }
  .statement { font-size: 27px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-canvas, .hero-fallback { transition: none; }
}
