/* V146 — Home 3D / digital objects feature.
   Ultra-wide single-column exhibition layout: the model is the dominant visual,
   all copy sits below it at exactly the same width, and desktop caption blocks
   share one top alignment line. The CGTrader iframe still loads eagerly. */
.home-3d-feature{
  position:relative;
  z-index:2;
  height:100vh;
  min-height:680px;
  padding:clamp(44px,5.2vh,64px) 0 clamp(72px,8.2vh,92px);
  display:flex;
  align-items:center;
  overflow:hidden;
}
.home-3d-feature::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 38%,rgba(106,151,178,.105),transparent 34%),
    radial-gradient(circle at 82% 74%,rgba(239,140,80,.032),transparent 28%),
    linear-gradient(180deg,rgba(4,16,24,.52),rgba(4,16,24,.72));
}
.home-3d-inner{
  position:relative;
  /* V146: the 3D work is the page subject, not one column in a split layout.
     Width is allowed to approach the viewport edge, while the height-aware cap
     keeps the complete model + caption composition inside a desktop panel. */
  width:min(94vw,1840px,calc((100vh - 225px) * 2.08));
  max-width:none;
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:clamp(20px,2.4vh,28px);
}

/* Model stage owns the one-shot panel entrance. */
.home-3d-model-stage{
  position:relative;
  width:100%;
  aspect-ratio:52 / 25;
  opacity:0;
  transform:translate3d(0,30px,0) scale(.965);
  filter:blur(10px) saturate(.88);
  transition:
    opacity .72s ease,
    transform 1.02s cubic-bezier(.16,1,.3,1),
    filter .78s ease;
  will-change:opacity,transform,filter;
}
.home-3d-feature.is-3d-feature-visible .home-3d-model-stage{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0) saturate(1);
}

/* Inner shell owns hover only; it never competes with the entrance transform. */
.home-3d-model-shell{
  position:absolute;
  inset:0;
  overflow:hidden;
  border:1px solid rgba(216,229,237,.16);
  border-radius:22px;
  background:rgba(5,14,21,.88);
  box-shadow:0 30px 82px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06);
  isolation:isolate;
  transform:translate3d(0,0,0) scale(1);
  transition:transform .48s cubic-bezier(.16,1,.3,1),border-color .3s ease,box-shadow .4s ease;
  will-change:transform;
}
.home-3d-model-stage:not(.is-interacting):hover .home-3d-model-shell{
  transform:translate3d(0,-10px,0) scale(1.012);
  border-color:rgba(216,229,237,.28);
  box-shadow:0 42px 100px rgba(0,0,0,.50),0 0 44px rgba(145,195,225,.055),inset 0 1px 0 rgba(255,255,255,.09);
}
.home-3d-model-stage.is-interacting .home-3d-model-shell{
  border-color:rgba(214,232,242,.32);
  box-shadow:0 34px 92px rgba(0,0,0,.48),0 0 42px rgba(145,195,225,.07),inset 0 1px 0 rgba(255,255,255,.09);
}
.home-3d-iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
  background:#071018;
  pointer-events:none;
}
.home-3d-model-stage.is-interacting .home-3d-iframe{pointer-events:auto}

/* Default input shield keeps wheel gestures available to the parent Home page. */
.home-3d-interaction-shield{
  position:absolute;
  inset:0;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  padding:0;
  background:linear-gradient(180deg,transparent 58%,rgba(3,10,15,.08));
  cursor:pointer;
  color:inherit;
}
.home-3d-interaction-shield::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:0;
  background:radial-gradient(circle at 50% 50%,rgba(169,207,229,.06),transparent 44%);
  transition:opacity .32s ease;
}
.home-3d-interaction-shield:hover::before{opacity:1}
.home-3d-interaction-hint{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  padding:0 18px;
  border:1px solid rgba(220,233,241,.26);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(38,54,65,.72),rgba(10,19,26,.58));
  box-shadow:0 14px 34px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(15px) saturate(1.08);
  -webkit-backdrop-filter:blur(15px) saturate(1.08);
  color:rgba(250,252,253,.96);
  font-size:12px;
  line-height:1;
  font-weight:650;
  letter-spacing:.05em;
  opacity:0;
  transform:translateY(8px) scale(.94);
  transition:opacity .22s ease,transform .28s cubic-bezier(.16,1,.3,1);
}
.home-3d-interaction-hint b{font-size:16px;font-weight:400}
.home-3d-interaction-shield:hover .home-3d-interaction-hint,
.home-3d-interaction-shield:focus-visible .home-3d-interaction-hint{
  opacity:1;
  transform:translateY(0) scale(1);
}
.home-3d-interaction-shield:focus-visible{outline:1px solid rgba(232,240,245,.70);outline-offset:-5px}
.home-3d-model-stage.is-interacting .home-3d-interaction-shield{display:none}

.home-3d-exit-control{
  position:absolute;
  z-index:8;
  top:14px;
  right:14px;
  min-height:38px;
  padding:0 14px;
  border:1px solid rgba(220,233,241,.24);
  border-radius:999px;
  background:rgba(9,20,28,.68);
  box-shadow:0 10px 30px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:rgba(249,251,252,.92);
  font-size:11px;
  font-weight:650;
  letter-spacing:.045em;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .2s ease,transform .24s ease,background .2s ease;
}
.home-3d-model-stage.is-interacting .home-3d-exit-control{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.home-3d-exit-control:hover{background:rgba(18,34,44,.82)}

/* Exhibition-label style caption: small, horizontal and subordinate to the model. */
.home-3d-caption{
  width:100%;
  display:grid;
  grid-template-columns:minmax(250px,1.05fr) minmax(360px,1.55fr) auto;
  gap:clamp(30px,4vw,78px);
  align-items:start;
  min-width:0;
  padding-top:clamp(16px,1.8vh,22px);
  border-top:1px solid rgba(216,229,237,.14);
}
.home-3d-caption-heading,
.home-3d-caption-copy,
.home-3d-caption-action{
  opacity:0;
  filter:blur(7px);
  will-change:opacity,transform,filter;
}
.home-3d-caption-heading{
  transform:translate3d(0,16px,0);
  transition:opacity .58s ease .34s,transform .76s cubic-bezier(.16,1,.3,1) .34s,filter .58s ease .34s;
}
.home-3d-caption-copy{
  transform:translate3d(0,16px,0);
  transition:opacity .60s ease .54s,transform .78s cubic-bezier(.16,1,.3,1) .54s,filter .60s ease .54s;
}
.home-3d-caption-action{
  transform:translate3d(0,16px,0);
  transition:opacity .58s ease .74s,transform .78s cubic-bezier(.16,1,.3,1) .74s,filter .58s ease .74s;
}
.home-3d-feature.is-3d-feature-visible .home-3d-caption-heading,
.home-3d-feature.is-3d-feature-visible .home-3d-caption-copy,
.home-3d-feature.is-3d-feature-visible .home-3d-caption-action{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
}
.home-3d-kicker{
  margin:0 0 10px;
  font-size:10px;
  line-height:1;
  font-weight:700;
  letter-spacing:.24em;
  color:rgba(178,204,219,.72);
}
.home-3d-title{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(28px,2.2vw,42px);
  line-height:1.04;
  font-weight:400;
  letter-spacing:-.035em;
  color:#f7f4ef;
}
.home-3d-description{
  margin:0;
  max-width:680px;
  font-size:clamp(13px,.9vw,16px);
  line-height:1.65;
  letter-spacing:.01em;
  color:rgba(239,243,245,.64);
}
.home-3d-view-more{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-width:154px;
  min-height:48px;
  padding:0 22px;
  border:1px solid rgba(188,209,222,.28);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(141,174,195,.15),rgba(255,255,255,.055));
  box-shadow:0 12px 30px rgba(0,0,0,.17),inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(15px) saturate(1.08);
  -webkit-backdrop-filter:blur(15px) saturate(1.08);
  color:rgba(247,249,250,.94);
  font-size:12px;
  font-weight:650;
  letter-spacing:.04em;
  white-space:nowrap;
  transition:transform .28s cubic-bezier(.16,1,.3,1),border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.home-3d-view-more b{font-size:17px;font-weight:400;line-height:1;transition:transform .2s ease}
.home-3d-view-more:hover{
  transform:translateY(-2px);
  border-color:rgba(202,222,234,.46);
  background:linear-gradient(135deg,rgba(151,187,209,.22),rgba(255,255,255,.075));
  box-shadow:0 16px 38px rgba(0,0,0,.21),0 0 24px rgba(145,195,225,.06),inset 0 1px 0 rgba(255,255,255,.14);
}
.home-3d-view-more:hover b{transform:translateX(4px)}
.home-3d-next{bottom:clamp(14px,2vh,24px)}

@media(max-width:1100px){
  .home-3d-inner{max-width:none;width:min(95vw,calc((100vh - 220px) * 1.92),calc(100vw - 30px))}
  .home-3d-model-stage{aspect-ratio:48 / 25}
  .home-3d-caption{grid-template-columns:minmax(210px,.95fr) minmax(260px,1.2fr) auto;gap:26px}
}
@media(max-width:800px){
  .home-3d-feature{height:auto;min-height:auto;padding:84px 0 106px;display:block}
  .home-3d-inner{width:min(calc(100vw - 28px),760px);max-width:none;gap:24px}
  .home-3d-model-stage{aspect-ratio:16 / 10}
  .home-3d-caption{grid-template-columns:1fr;gap:18px;align-items:start;padding-top:18px}
  .home-3d-caption-action{justify-self:start}
  .home-3d-title{font-size:clamp(32px,8vw,46px)}
  .home-3d-description{font-size:14px}
  .home-3d-next{position:relative;left:50%;bottom:auto;margin-top:42px;margin-bottom:-64px}
}
@media(max-width:520px){
  .home-3d-feature{padding-top:72px}
  .home-3d-model-shell{border-radius:16px}
  .home-3d-interaction-hint{min-height:42px;padding:0 15px;font-size:11px}
  .home-3d-view-more{min-width:146px;min-height:46px}
}
@media(hover:none),(pointer:coarse){
  .home-3d-model-stage:not(.is-interacting):hover .home-3d-model-shell{transform:none}
  .home-3d-interaction-hint{opacity:1;transform:none}
}
