/* Home: cinematic green editorial direction. */
.hero {
  position:relative;
  min-height:720px;
  padding-top:64px;
  isolation:isolate;
}
.hero-copy {
  position:relative;
  z-index:2;
  width:58%;
  padding-bottom:38px;
}
.hero .eyebrow {
  color:var(--green);
  font-size:10px;
  letter-spacing:3px;
  margin-bottom:32px;
}
h1 {
  font-size:clamp(65px,7.5vw,112px);
  line-height:.94;
  letter-spacing:-5px;
  margin:0 0 34px;
}
h1 em {
  color:var(--green);
}
.hero-description {
  max-width:440px;
  font-size:16px;
  color:#c2c7c1;
  line-height:1.7;
}
.hero-actions {
  display:flex;
  gap:22px;
  align-items:center;
  margin-top:28px;
}
.hero-actions .text-link {
  border:1px solid #1ed76099;
  border-radius:4px;
  padding:17px 25px;
  font-size:13px;
}
.hero-art {
  position:absolute;
  z-index:-1;
  inset:-110px -6.8% 0 30%;
  overflow:hidden;
}
.hero-sculpture {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:62% center;
  mask-image:linear-gradient(90deg,transparent,#000 26%);
}
.orbital-line {
  position:absolute;
  width:570px;
  height:570px;
  border:1px solid #58d48c55;
  border-radius:50%;
  pointer-events:none;
}
.line-a {
  right:-100px;
  top:260px;
  transform:rotate(-20deg) scaleY(.8);
}
.line-b {
  right:180px;
  top:-100px;
  transform:rotate(20deg) scaleX(.55);
}
.art-coordinate,.art-caption {
  position:absolute;
  right:7%;
  top:20%;
  font-size:8px;
  line-height:1.8;
  letter-spacing:2px;
  color:#d4d7cd;
}
.art-caption {
  top:auto;
  bottom:8%;
}
.hero-bottom {
  position:relative;
  z-index:2;
  display:flex;
  gap:25px;
  padding:20px 0 45px;
  max-width:440px;
}
.hero-bottom>span {
  font-size:16px;
  padding-right:25px;
  border-right:1px solid var(--line);
}
.hero-bottom>span:last-child {
  border:0;
}
.hero-bottom>span>span {
  display:block;
  font-size:8px;
  letter-spacing:1.5px;
  margin-top:8px;
  color:var(--muted);
}
.discipline-strip {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:35px;
  padding:25px 3%;
  border-block:1px solid var(--line);
  font-family:Georgia,serif;
  font-size:clamp(18px,3vw,40px);
  color:#c2c3b8;
}
.discipline-strip b {
  font-size:20px;
  font-weight:400;
}
.section {
  padding-block:65px;
}
.section-heading {
  display:grid;
  grid-template-columns:1.4fr .7fr;
  column-gap:70px;
  margin-bottom:38px;
}
.section-heading .eyebrow {
  grid-column:1;
  color:var(--green);
  letter-spacing:3px;
  font-size:10px;
  margin-bottom:16px;
}
.section-heading h2 {
  grid-column:1;
  font-size:clamp(42px,5vw,68px);
  margin:0;
  letter-spacing:-2px;
}
.section-heading>p:last-child {
  grid-column:2;
  grid-row:1/3;
  align-self:end;
  font-size:13px;
  color:var(--muted);
  max-width:330px;
  margin:0 0 8px;
}
.service {
  display:grid;
  grid-template-columns:27% 32px minmax(0,1fr) 23% 45px;
  gap:22px;
  align-items:center;
  border-top:1px solid var(--line);
  padding:14px 0;
  transition:background .2s;
}
.service:last-child {
  border-bottom:1px solid var(--line);
}
.service:hover {
  background:#1ed76006;
}
.service-image {
  display:block;
  width:100%;
  height:155px;
  object-fit:cover;
}
.service-image-2 {
  object-position:center;
}
.service-image-3 {
  object-position:center;
}
.number {
  color:var(--green);
  font-family:Georgia,serif;
  font-size:30px;
  align-self:start;
  margin-top:22px;
}
.service h3 {
  font-size:29px;
  line-height:1.15;
  letter-spacing:-1px;
  margin:0 0 10px;
}
.service h3 br {
  display:none;
}
.service p {
  font-size:13px;
  line-height:1.6;
  color:var(--muted);
  margin:0;
  max-width:330px;
}
.tags {
  font-size:9px;
  letter-spacing:1.5px;
  line-height:2.4;
  border-left:1px solid #ffffff44;
  padding:10px 0 10px 25px;
}
.service>a {
  display:grid;
  place-items:center;
  width:40px;
  height:43px;
  border:1px solid #b7c6b780;
  border-radius:50%;
  font-size:20px;
  transition:background .2s,color .2s;
}
.service>a:hover {
  background:var(--green);
  color:var(--ink);
}
.projects-section {
  padding-top:0;
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
}
.project-art {
  height:360px;
  position:relative;
  overflow:hidden;
  border:1px solid #ffffff40;
  background:#09110e;
}
.project-art>img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s;
}
.project:hover .project-art>img {
  transform:scale(1.035);
}
.menu-sheet,.landing-sheet,.enterprise-sheet {
  position:absolute;
  inset:0;
  padding:24px;
}
.menu-sheet {
  background:linear-gradient(180deg,#0005,#0001 25%,#0007);
  color:#eee9da;
}
.landing-sheet {
  color:#17211a;
}
.project-art small {
  display:block;
  font-size:9px;
  letter-spacing:1px;
}
.project-art strong {
  font-family:Georgia,serif;
  font-size:36px;
  line-height:1.08;
  font-weight:400;
  display:block;
  margin-top:62px;
  max-width:230px;
}
.project-art .landing-sheet strong {
  margin-top:54px;
}
.menu-sheet>span,.landing-sheet>span,.enterprise-sheet>span {
  display:block;
  font-size:8px;
  letter-spacing:1px;
  margin-top:20px;
  max-width:150px;
  line-height:1.7;
}
.plate,.architecture {
  display:none;
}
.art-index {
  position:absolute;
  bottom:18px;
  right:18px;
  color:var(--green);
  font-size:12px;
}
.enterprise {
  background:radial-gradient(ellipse at 90% 100%,#066744,transparent 60%),#070d12;
}
.enterprise-sheet strong {
  font-family:'Segoe UI',Arial,sans-serif;
  font-size:35px;
  letter-spacing:-1.5px;
  font-weight:650;
  position:relative;
  z-index:1;
}
.enterprise-symbol {
  position:absolute;
  right:-15px;
  bottom:-20px;
  border:1px solid #00df7077;
  border-radius:25px;
  width:160px;
  height:190px;
  transform:rotate(-15deg);
  background:linear-gradient(145deg,#18362e,#020706);
  color:var(--green);
  font-size:110px;
  text-align:center;
  box-shadow:-15px 0 40px #00df7022;
}
.project-meta {
  display:flex;
  justify-content:space-between;
  color:var(--green);
  font-size:8px;
  letter-spacing:1px;
  margin:20px 0 9px;
}
.project h3 {
  font-size:17px;
  font-weight:500;
  margin-bottom:8px;
}
.project>p {
  font-size:12px;
  color:var(--muted);
}
.project .text-link {
  font-size:12px;
}
.about {
  display:grid;
  grid-template-columns:.6fr 1.4fr;
  gap:80px;
  align-items:center;
  padding-top:20px;
}
.about-symbol {
  color:var(--green);
  font-size:150px;
  text-align:center;
  line-height:1;
}
.about-symbol span {
  display:block;
  color:var(--muted);
  font-family:'Segoe UI',Arial,sans-serif;
  font-size:8px;
  letter-spacing:2px;
  line-height:1.8;
  margin-top:20px;
}
.about-copy>.eyebrow {
  color:var(--green);
  font-size:10px;
  letter-spacing:3px;
}
.about-copy h2 {
  font-size:44px;
  margin-bottom:22px;
}
.about-copy>p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
  max-width:680px;
}
.contact-section {
  position:relative;
  isolation:isolate;
  width:min(1440px,95%);
  margin:0 auto;
  padding:50px 0;
  min-height:520px;
  border:1px solid #ffffff44;
  background:var(--ink);
}
/* The artwork keeps its own height when the form expands. */
.contact-section::before {
  content:"";
  position:absolute;
  z-index:-1;
  top:0;
  left:0;
  right:0;
  height:520px;
  pointer-events:none;
  background:
    linear-gradient(180deg,transparent 65%,var(--ink) 100%),
    linear-gradient(90deg,#030c09ed 0%,#030c0990 45%,#030c0910 75%),
    url('../assets/images/hero/emerald-portal.webp') center/cover;
}
.contact-grid {
  display:block;
}
.contact-grid>.reveal {
  max-width:700px;
}
.contact-grid .eyebrow {
  color:var(--green);
  font-size:10px;
  letter-spacing:3px;
}
.contact-grid h2 {
  font-size:clamp(40px,4.7vw,66px);
  letter-spacing:-2px;
  margin-bottom:24px;
}
.contact-grid>.reveal>p:not(.eyebrow) {
  font-size:14px;
  color:#c2c7c1;
}
.contact-grid .text-link {
  background:var(--green);
  color:var(--ink);
  padding:15px 25px;
  border-radius:4px;
  border:0;
  font-weight:650;
}
.contact-grid p.location {
  font-size:8px;
  letter-spacing:2px;
  margin:25px 0 0;
}
.contact-details {
  margin-top:28px;
  max-width:580px;
  background:#030c09e8;
  border:1px solid #ffffff33;
}
.contact-details>summary {
  cursor:pointer;
  padding:16px 20px;
  font-size:13px;
}
.contact-details>summary span {
  float:right;
  color:var(--green);
}
.contact-form {
  padding:5px 25px 20px;
}
.contact-form label {
  display:block;
  font-size:12px;
  margin:20px 0 8px;
}
.contact-form input,.contact-form select,.contact-form textarea {
  display:block;
  width:100%;
  background:transparent;
  color:var(--white);
  border:0;
  border-bottom:1px solid #667a6d;
  padding:10px 0 14px;
  border-radius:0;
  font-size:14px;
}
.contact-form textarea {
  resize:vertical;
  min-height:85px;
}
.contact-form select option {
  background:var(--ink);
}
.contact-form ::placeholder {
  color:#99a99f;
}
.contact-form .button {
  margin-top:25px;
  width:100%;
}
#form-status {
  margin-top:16px;
  color:var(--green);
  font-size:13px;
}

.contact-honeypot { display:none; }
.contact-form button:disabled { opacity:.65; cursor:wait; transform:none; }
