/* Opening object field
   A calibrated instrument archive: the thesis stays human, while the live
   chamber is visibly a working system rather than an ornamental 3D card. */
.hero-objects{
  position:relative;
  z-index:1;
  min-height:100svh;
  display:grid;
  grid-template-rows:auto minmax(220px,1fr);
  gap:clamp(14px,2.2vh,22px);
  padding:clamp(92px,10.5vh,116px) clamp(18px,4.4vw,68px) 0;
  overflow:hidden;
  isolation:isolate;
  color:var(--ink);
  background:
    radial-gradient(circle at 16% 8%,rgba(255,255,255,.68),transparent 38%),
    linear-gradient(118deg,rgba(255,255,255,.12),transparent 42%),
    var(--plaster);
}
.hero-objects::before,
.hero-objects::after{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
}
.hero-objects::before{
  left:clamp(18px,4.4vw,68px);
  right:clamp(18px,4.4vw,68px);
  top:clamp(82px,9.4vh,103px);
  height:1px;
  background:rgba(43,31,20,.18);
}
.hero-objects::after{
  inset:auto 0 0;
  height:clamp(28px,5vh,54px);
  background:linear-gradient(to bottom,transparent,var(--ivory));
}

html.site-intro-queued #hd,
html.site-intro-queued #main-content,
html.site-intro-queued .site-fibers,
html.site-intro-queued .project-assistant-shell,
html.site-intro-queued .site-mode-toggle-container,
html.site-intro-queued .hero-objects .hero-editorial{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
html.site-intro-queued .hero-objects:not(.hero-field-intro):not(.hero-field-docking) .hero-object-chamber{
  opacity:0;
  visibility:hidden;
}
html.site-intro-queued .hero-objects{
  background:var(--plaster);
}
html.site-intro-queued .hero-objects::before,
html.site-intro-queued .hero-objects::after{
  opacity:0;
}
#hd,
#main-content,
.site-fibers,
.project-assistant-shell,
.site-mode-toggle-container,
.hero-objects,
.hero-objects::before,
.hero-objects::after{
  transition:opacity .82s cubic-bezier(.16,1,.3,1);
}

.hero-editorial{
  width:min(1360px,100%);
  min-width:0;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(480px,1.55fr) minmax(340px,1fr);
  align-items:start;
  gap:clamp(28px,3.8vw,64px);
  padding:6px 0 0;
}

.hero-objects.hero-field-intro .hero-editorial {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  pointer-events: none;
}

.hero-objects.hero-ui-reveal .hero-editorial,
.hero-objects.hero-field-ready .hero-editorial,
.hero-objects.hero-field-static .hero-editorial {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes heroEditorialIn {
  from { opacity: 0; transform: translate3d(0, -36px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes heroChamberIn {
  from { opacity: 0; transform: translate3d(0, 20px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.hero-statement{
  display:grid;
  align-content:start;
  gap:7px;
  min-width:0;
}
.hero-brand{
  margin:0 0 2px;
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(3rem,4.4vw,4.9rem);
  line-height:.9;
  letter-spacing:-.03em;
  color:var(--ink);
}

.hero-kicker{
  display:flex;
  align-items:center;
  gap:.62rem;
  margin:0 0 2px;
  font-size: .6875rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--calibration);
}
.hero-kicker::before{
  content:"";
  width:.48rem;
  height:.48rem;
  flex:0 0 auto;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent);
}
.hero-statement h1{
  max-width:31ch;
  margin:0;
  font-family:var(--sans);
  font-size:clamp(2.15rem,2.72vw,3.35rem);
  line-height:.94;
  letter-spacing:-.035em;
  font-weight:600;
  text-wrap:pretty;
}
.hero-title-line{
  display:block;
}
.hero-statement h1 em{
  font-family:var(--serif);
  font-style:normal;
  font-weight:560;
  font-size:1.04em;
  line-height:.96;
  letter-spacing:-.022em;
  color:var(--amber);
}
.hero-actions{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:stretch;
  gap:0;
  padding-top:5px;
  border-top:1px solid rgba(43,31,20,.22);
}
.hero-action{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  min-height:48px;
  padding:0 16px;
  border:0;
  border-bottom:1px solid rgba(43,31,20,.28);
  border-radius:0;
  font-size: .6875rem;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .3s,color .3s,border-color .3s,transform .35s var(--ease-out);
}
.hero-action:first-child{
  background:var(--ink);
  color:var(--plaster);
  padding-inline:20px;
}
.hero-action:hover{
  transform:translateY(-2px);
  border-color:var(--amber);
}
.hero-action:first-child:hover{
  background:var(--amber);
}
.hero-action span{
  font-family:var(--serif);
  font-size:1rem;
  line-height:1;
}
/* The recruiter fast path is a button, not a link; give it the ghost-action
   look and quieter ink so it supports the two primary actions. */
button.hero-action{
  grid-column:1 / -1;
  background:transparent;
  font-family:inherit;
  color:var(--ink-soft);
  cursor:pointer;
  text-align:left;
}
button.hero-action:hover{
  color:var(--ink);
  background:rgba(255,255,255,.24);
}
.hero-object-chamber-slot{
  position:relative;
  width:min(1360px,100%);
  min-width:0;
  min-height:0;
  height:100%;
  margin:0 auto;
}
.hero-object-chamber{
  position:relative;
  width:100%;
  height:100%;
  min-height:clamp(220px,55vh,620px);
  margin:0;
  overflow:hidden;
  border:0;
  border-radius:16px 16px 0 0;
  background:
    radial-gradient(circle at 50% -20%,rgba(196,106,43,.1),transparent 44%),
    #171513;
  box-shadow:0 26px 70px -42px rgba(43,31,20,.78);
  animation:heroChamberIn 1.05s var(--ease-out) .08s both;
}
.hero-object-chamber::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(to bottom,rgba(255,255,255,.035),transparent 12%),
    linear-gradient(to top,rgba(0,0,0,.16),transparent 18%);
  box-shadow:inset 0 0 0 1px rgba(250,244,232,.075);
}

.hero-field-intro .hero-object-chamber,
.hero-field-entered .hero-object-chamber{
  animation:none;
}
body > .hero-object-chamber.hero-flight-chamber{
  position:fixed;
  left:var(--hero-flight-x);
  top:var(--hero-flight-y);
  z-index:100010;
  width:var(--hero-flight-width);
  height:var(--hero-flight-height);
  min-height:0;
  margin:0;
  overflow:visible;
  border-radius:0;
  clip-path:none;
  background:transparent;
  box-shadow:none;
  pointer-events:none;
  animation:heroFlightChamberOpen .52s cubic-bezier(.16,1,.3,1) both;
  will-change:transform,opacity;
}
body > .hero-object-chamber.hero-flight-chamber::after{display:none}
body > .hero-object-chamber.hero-flight-chamber .hero-object-canvas{
  opacity:1;
}
.hero-field-docking .hero-object-chamber{
  will-change:transform;
}
@keyframes heroChamberIn{
  from{opacity:0;transform:translate3d(0,34px,0) scale(.985)}
}
@keyframes heroFlightChamberOpen{
  from{opacity:0}
  to{opacity:1}
}
.hero-object-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  opacity:0;
  touch-action:pan-y;
  cursor:crosshair;
  transition:opacity .7s ease;
}
.hero-field-ready .hero-object-canvas,
.hero-field-intro .hero-object-canvas{opacity:1}
.hero-object-status{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.project-assistant-shell{
  transition:opacity .35s ease,transform .45s var(--ease-out);
}
body.cover-visible .project-assistant-shell{
  opacity:0;
  transform:translate3d(0,18px,0) scale(.96);
  pointer-events:none;
}

@media (max-width:1120px){
  .hero-editorial{
    width:min(100%,900px);
    margin:0 auto;
    grid-template-columns:minmax(440px,1.5fr);
    grid-template-rows:auto auto;
    align-items:start;
    gap:clamp(20px,4vw,56px);
    padding:0;
  }
  .hero-statement{display:grid;gap:8px}
  .hero-brand{margin-bottom:6px}
  .hero-kicker{margin-bottom:0}
  .hero-actions{
    grid-column:1;
    grid-template-columns:1fr auto;
    padding-top:2px;
    border:0;
  }
  button.hero-action{grid-column:1 / -1}
  .hero-action{
    min-height:42px;
    border:1px solid rgba(43,31,20,.28);
  }
  .hero-object-chamber-slot{min-height:390px}
  .hero-object-chamber{min-height:390px}
}
@media (max-width:640px){
  .hero-objects{
    min-height:100svh;
    grid-template-rows:auto minmax(388px,1fr);
    gap:13px;
    padding:86px 12px 0;
  }
  .hero-objects::before{left:12px;right:12px;top:76px}
  .hero-editorial{grid-template-columns:1fr;gap:8px}
  .hero-statement{gap:6px}
  .hero-brand{margin-bottom:8px;font-size:clamp(2.65rem,14vw,3.5rem)}
  .hero-kicker{margin-bottom:2px;font-size: .6875rem}
  .hero-statement h1{max-width:22ch;font-size:clamp(1.9rem,9.2vw,2.5rem);line-height:.96}
  .hero-actions{
    grid-column:auto;
    grid-template-columns:1fr auto;
    padding-top:5px;
    white-space:normal;
  }
  .hero-action{min-height:44px;padding:0 13px;gap:12px;font-size: .6875rem}
  button.hero-action{grid-column:1 / -1}
  .hero-object-chamber{
    min-height:388px;
    border-radius:13px 13px 0 0;
  }
  .hero-object-chamber-slot{min-height:388px}
}
@media (max-height:720px) and (min-width:641px){
  .hero-objects{
    grid-template-rows:auto minmax(170px,1fr);
    padding-top:82px;
  }
  .hero-editorial{gap:clamp(20px,3vw,46px);padding-block:0}
  .hero-brand{font-size:clamp(2.5rem,3.2vw,3.55rem)}
  .hero-kicker{margin-bottom:0}
  .hero-statement h1{font-size:clamp(1.85rem,2.15vw,2.45rem)}
  .hero-actions{padding-top:3px}
  .hero-action{min-height:44px}
  .hero-object-chamber{min-height:170px}
}
@media (prefers-reduced-motion:reduce){
  .hero-editorial,
  .hero-object-chamber{animation:none}
  .hero-action{transition:none}
  .hero-object-canvas{transition:none}
  .project-assistant-shell{transition:none}
}
